не удается найти элемент текстового поля с помощью селектора xpath или css - PullRequest
0 голосов
/ 25 января 2020

Я пытаюсь ввести текст в текстовое поле на веб-странице, вот снимок экрана для Enter Symbol .

Мой код работает нормально для всех остальных элементов, кроме выделенное текстовое поле на скриншоте:

WebDriverWait(driver, 40).until(EC.visibility_of_element_located((By.XPATH, '//*[@id="main-content-column"]/div/div[3]/div/div[1]/form/div/div/div[2]/input'))).send_keys("aapl")

Не похоже на рамку или фрейм. Пожалуйста, смотрите исходный код для сайта:

<input type="text" autocomplete="off" autocorrect="off" autocapitalize="off" placeholder="Add a symbol..." class="sec-search-box bc-form__add-symbol-input ng-pristine ng-invalid ng-invalid-required ng-touched placeholder" data-ng-model="userEnteredSymbols" data-barchart-clear-input="" required="">

Большое спасибо.

Ответы [ 2 ]

0 голосов
/ 25 января 2020

Вы используете Absolute xpath, что не рекомендуется. Вы можете попробовать ниже xpath с webdriver wait

element = WebDriverWait(browser, 30).until(EC.visibility_of_element_located((By.XPATH, "//input[@data-ng-model= 'userEnteredSymbols']")))
element.send_keys("aapl")

, вам нужно ниже импорта

from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
0 голосов
/ 25 января 2020

Вы можете ввести значение, используя xpath:

WebDriverWait(driver, 40).until(EC.visibility_of_element_located((By.XPATH, "//input[@data-ng-model='userEnteredSymbols']"))).send_keys("aapl")
...