Иногда не отправка полного текста для ввода, как ожидается, sendkeys в Селен Python - PullRequest
0 голосов
/ 09 июня 2019

Я пытаюсь зайти на сайт автоматически по селену. Мой сценарий иногда работает без сбоев, но иногда он не отправляет полный текст имени пользователя или пароля на соответствующие входы, поэтому он не смог войти в систему. Я пытаюсь вставить implicitly_wait, но, похоже, не решить эту проблему полностью. Интересно, есть ли какая-либо функция, требующая от веб-драйвера полного заполнения каждого ввода перед тем, как выполнить еще один в селене. Вот попытка:

browserdriver.get(url)

#fill username
browserdriver.implicitly_wait(25)
psusername=browserdriver.find_element_by_xpath("//*[@class='form-group'][1]/input[@name='username']")
psusername.click()
psusername.send_keys("1234567890")

#fill password
browserdriver.implicitly_wait(25)
pspass=browserdriver.find_element_by_xpath("//*[@class='form-group'][2]/input[@name='password']")
pspass.click()
pspass.send_keys("abcdefgfk12345")

browserdriver.implicitly_wait(25)
pssubmit=browserdriver.find_element_by_xpath("//*[@class='login-btn']/button[@type='submit']")
pssubmit.click()

Пожалуйста, объясните мне, почему я застреваю в этой проблеме и как ее решить! большое спасибо

РЕДАКТИРОВАТЬ1: я добавляю адрес целевого сайта: нажмите здесь Вы должны нажать на слова входа (năng nhập) в правом верхнем углу экрана, чтобы увидеть всплывающую панель входа в систему.

РЕДАКТИРОВАТЬ 2: Спасибо руководству ниже комментариев, я пытаюсь добавить несколько строк кода, чтобы заставить его к ключевой отдельной букве, и это, кажется, работает хорошо, поэтому я добавляю решение здесь:

text_input="1234567890"
for i in text_input:
    psusername.send_keys(i)

1 Ответ

1 голос
/ 12 июня 2019

Используйте атрибут set вместо sendkeys. Вот пример кода:

webdriver.executeScript("document.getElementById('elementID').setAttribute('value', '1234567890')");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...