селен не может установить ввод для поля ввода, которое становится окном выбора в фокусе - PullRequest
0 голосов
/ 16 октября 2019

У меня есть веб-страница, где у меня есть поле для ввода текста, которое при нажатии превращается в поле выбора. Выбранные элементы появляются из таблицы. т. е. таблица используется в качестве входных данных выбора вместо тега опций. Я могу получить значение каждой таблицы td с помощью xpath. Но я не могу выбрать опцию в select.

При нажатии на вход он превращается в окно выбора, в котором я могу перемещаться, также используя клавиши со стрелками вверх или вниз.

browser.find_element_by_xpath("//*[@id='not-tbl']/tbody/tr[1]/td").click()
print(browser.find_element_by_xpath("//*[@id='not-tbl']/tbody/tr[1]/td").get_attribute("innerHTML"))

Xpathполя ввода: //*[@id="not_cat"] HTML выбора:

<input id="not_cat" value="" readonly="" ct="ComboBox" k="" ks="" lid="notification_in_category-lb" op="false" st="" vt="true" dd="true" ic="6" vs="" tabindex="0" ti="0" class="urCoB2TxtDdl" onfocus="sapUrMapi_ComboBox_focusDdlb('notification_in_category',event);" onblur="sapUrMapi_ComboBox_blurDdlb('notification_in_category',event);" onkeydown="sapUrMapi_ComboBox_keydown('notification_in_category',event);" onkeypress="sapUrMapi_ComboBox_keypress('notification_in_category',event);" onselectstart="sapUrMapi_cancelEvent(event);" style="width:119;" noblur="false" ll="false">

Как добавить значение td этой таблицы во входные данные. Вручную делать sendkeys не работают. Как только поле ввода имеет фокус, оно становится полем выбора.

1 Ответ

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

Я нашел решение самостоятельно.

Сначала я щелкнул мышью, затем дал задержку, чтобы выбор был заполнен. Тогда я использовал клавиши со стрелками.

browser.find_element_by_id("not_cat").click()
time.sleep(3)
browser.find_element_by_id("not_cat").send_keys(Keys.DOWN * 4)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...