Селен веб-драйвер - выберите опцию из выпадающего меню, которое заполняется через функцию JS - PullRequest
0 голосов
/ 06 января 2012

Меню как

Управление доступом | --search Пользователь | --создать пользователя

Я попал в ситуацию, когда нет выхода. :( Когда я нажимаю на ссылку меню, выпадающий список содержит еще один набор из 3 ссылок. Из которых мне нужно выбрать ссылку 2 (Создать пользователя), но, поскольку при нажатии кнопки «Access mgmt» появляется функция js, которая заполняет подменю, и, следовательно, я не могу найти критерий для поиска этого элемента и нажатия на него. , Пожалуйста, предложите способ сделать это.

Доступ к функции mgmt --- js называется clickToShowIt () под сценарием JS я могу найти переменную, определенную как menu [0] .node [1] .name = 'Create User'

1 Ответ

0 голосов
/ 07 января 2012

У вас есть как минимум 2 варианта. Предпочтительный вариант (не стесняйтесь использовать явное ожидание , если необходимо):

# python:

my_menu = browser.find_element_by_xpath(MY_MENU_XPATH)
my_menu.click()  # this click should execute `clickToShowIt()` for you.
my_option = my_menu.find_element_by_xpath(MY_OPTION_XPATH)

Или, если вы можете получить доступ к функции clickToShowIt() из консоли разработчика:

browser.execute_script("clickToShowIt();")
my_option = browser.find_element_by_xpath(MY_OPTION_XPATH)
...