Выбор элемента с выпуском селена python - PullRequest
1 голос
/ 01 апреля 2020

I can't select the input field

Я использую этот код, но не могу выбрать поле ввода.

from selenium import webdriver
from selenium.webdriver.common.keys import Keys

driver = webdriver.Chrome()
driver.get("https://10fastfingers.com/multiplayer")
input("Start : ")
a = "b"
inputfield = driver.find_element_by_xpath("//input[@type='text']")
inputfield.click()
while a == "b":
    try:
        word = driver.find_element_by_xpath("//span[@class='highlight']")
        inputfield.send_keys(word.text)
        inputfield.send_keys(Keys.SPACE)
    except:
        print("Finish")
        a = "c"

элемент поля ввода;

<input type="text" autofocus="autofocus" autocapitalize="none" autocorrect="off">

1 Ответ

2 голосов
/ 01 апреля 2020

Поскольку загрузка страницы занимает некоторое время, вы должны применить явное ожидание к элементу, чтобы скрипт ожидал, пока элемент присутствует на странице.
Вы можете сделать это следующим образом:

from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC

driver = webdriver.Chrome()
driver.get("https://10fastfingers.com/multiplayer")
input("Start : ")
a = "b"
driver.switch_to.frame(driver.find_element_by_tag_name('iframe'))
inputfield = WebDriverWait(driver, 20).until(EC.presence_of_element_located((By.XPATH, "//input[@type='text']")))
inputfield.click()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...