Selenium Python Chrome - класс действий не send_keys - PullRequest
0 голосов
/ 13 декабря 2018

Существует правительственная страница, защищенная паролем;мой код регистрирует меня в порядке.Затем я пытаюсь заполнить следующий ввод с кодом ниже:

<td ><script type='text/javascript'>$('.inputs').keydown(function (e) {if (e.keyCode == 39) 
{$(this).parent('td').next().find('.inputs').focus();}else if(event.keyCode == 13)
 {event.preventDefault();$(this).parent('td').next().find('.inputs').focus();return false;}
else if (e.keyCode == 37){$(this).parent('td').prev().find('.inputs').focus();}});</script>
<input type="Text" ID="95413" Name="WellName_95413" value="" class="bind_WellName inputs"
onkeyup="changeValue(event)" onchange="changeValue(event)"  
style="width:100%;margin: 0px 2px 0px 2px; height: 25px;" ></td>

Код:

driver = webdriver.Chrome('C:/Users/km/Documents/chromedriver245/chromedriver.exe')
well_name = driver.find_element_by_id('95413')
actions = webdriver.ActionChains(driver)
actions.move_to_element(well_name)
actions.click()
actions.send_keys('test well name')
actions.perform()

Ничего не происходит - поле не содержит заполненный текст, и ошибка не отображается наконсоль просто говорит:

C:\Python37>python.exe eForm_dev.py

DevTools listening on ws://127.0.0.1:56091/devtools/browser/771d733c-e1a1-4bbc-b43b-ac8a4f39a122

C:\Python37>

Я пробовал другие подходы, которые тоже не работали:

  • well_name.send_keys() сам по себе
  • well_name.click() затем well_name.send_keys()
  • well_name.send_keys(Keys.ENTER), затем well_name.send_keys()

1 Ответ

0 голосов
/ 14 декабря 2018

Я наткнулся на добавление

time.sleep(3)

до

actions = webdriver.ActionChains(driver)
etc.

И это работает.Почему?

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