Python + Selenium: send_keys отправляет пробелы вместо чисел в текстовое поле - PullRequest
0 голосов
/ 13 апреля 2020

Я использую Python и пытаюсь заполнить это текстовое поле своим днем ​​рождения, используя send_keys (Firefox). Однако send_keys не работает должным образом; вместо отправки ключей «01012012», он отправляет только пробелы.

Я заметил, что использование Safari WebDriver работает, но не с Firefox или Chrome.

Это элемент:

<label class="cont\_input filledDob filled invalid" style="width:100%; margin:18px 0 0 0; float:left; position:relative; padding:10px 0 0 0;">

<input type="text" name="dob" value="" maxlength="10" class="input\_login input\_date" placeholder="Dia / Mês / Ano" tabindex="3" id="dob" required="" aria-required="true" title="Por favor, forneça uma data válida. Ex: 01/01/2012">

<span class="txt\_form" style="width:250px;">Data de Nascimento</span>
<span class="txt\_form">DD/MM/AAAA</span>
</label>

Я использую эту команду:

driver.find_element_by_name("dob").send_keys("01012012")

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

Любое предложение, пожалуйста?

1 Ответ

0 голосов
/ 13 апреля 2020

Это был определенно интересный. По какой-то причине почти половина времени вводится неправильно. Я написал небольшой обходной путь, который вы можете использовать, который, кажется, работает.

from selenium import webdriver

inputDOB = "01012012"
enteredDOB = "{0}/{1}/{2}".format(inputDOB[:2], inputDOB[2:4], inputDOB[4:])

browser = webdriver.Chrome()
browser.get("https://www.clear.com.br/pit/signin?controller=SignIn")
dob = browser.find_element_by_name("dob")
while (dob.get_attribute('value') != enteredDOB):
    dob.clear()
    dob.send_keys(inputDOB)

Редактировать: Объяснение

inputDOB - ваш обычный ввод, который вы будете выдавать.

Когда вы сравниваете значение поля dob, оно возвращает значение, подобное MM / DD / YYYY, включая косую черту. Поэтому я создал переменную enterDOB, которая на самом деле такая же, как inputDOB, но с косой чертой.

Итак, для inputDOB = "01012012", enterDOB = "01/01/2012"

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