fandorin_official
@fandorin_official
Герой серии исторических детективов.

Как правильно указать xpath для всплывающего элемента?

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

Код следующий.
d.implicitly_wait(10)
menu = d.find_element_by_css_selector('a.n-t.bold')
actions = ActionChains(d)
actions.move_to_element(menu)
hidden_submenu = d.find_element_by_xpath('//span[contains(text(),"Отписаться")]')
actions.click(hidden_submenu)
actions.perform()


Выполнение падает на строке:
hidden_submenu = d.find_element_by_xpath('//span[contains(text(),"Отписаться")]')

И я не совсем уверен что я правильно ищу этот элемент.
Кусочек кода страницы с этой кнопкой выглядит вот так:


Подскажите пожалуйста, как это реализовать? Где это можно посмотреть?
  • Вопрос задан
  • 427 просмотров
Решения вопроса 1
@1001001
actions.move_to_element(menu).perform()
d.find_element_by_xpath('//span[contains(text(),"Отписаться")]').click()
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
Toximiner
@Toximiner
1. actions.perform() надо поднимать выше, т.к. в момент поиска hidden_submenu курсор мыши еще не навелся на menu.
2. Так же, скорее всего, при наведении мыши на menu, hidden_submenu появляется с задержкой и надо смотреть в сторону ожиданий https://selenium-python.readthedocs.io/waits.html
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы