Есть ли какой-либо другой элемент селена, чтобы выбрать для поля пароля? - PullRequest
0 голосов
/ 16 октября 2019

Я пытаюсь автоматизировать процесс входа в систему на сайте https://www.makemytrip.com. Я мог бы выбрать имя пользователя по идентификатору и передать ключи, но проблема в поле пароля.

Ниже приведен элемент, который я использовал для пароля

usr = driver.find_element_by_id('password') 
usr.send_keys('****')

Также пробовал с xpath

driver.find_element_by_xpath('//*[@id="password"]')

Но сообщение об ошибке не может найти пароль элемента ID

Ниже приведен HTML-элемент

<input autocomplete="off" maxlength="100" type="password" class="font14" id="password" placeholder="minimum 6 characters." data-cy="password" value="">

Я пробовал много селекторов. Есть ли способ решить эту проблему?

1 Ответ

0 голосов
/ 16 октября 2019

Мне удалось успешно отправить ключи в поле пароля с помощью этого кода:

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

# wait for username
username_input = WebDriverWait(driver, 10).until(EC.presence_of_element_located(
    (By.XPATH, "//input[@id='username']")))

username_input.send_keys("christine@gmail.com")

# wait on continue button
continue_button = WebDriverWait(driver, 10).until(EC.presence_of_element_located(
    (By.XPATH, "//button[span[text()='Continue']]")))

# click continue with Javascript -- button is flakey sometimes
driver.execute_script("arguments[0].click();", continue_button)

# wait for password
password_input = WebDriverWait(driver, 10).until(EC.presence_of_element_located(
    (By.XPATH, "//input[@id='password']")))

password_input.send_keys("testtest")

Я добавил wait в поле пароля. Я успешно запустил этот код в своей среде Python.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...