#selenium #serenity-bdd #cucumber-serenity
Вопрос:
У меня есть эта ошибка «элемент не взаимодействует», когда я пытаюсь щелкнуть раскрывающийся список с помощью selenium. Однако в режиме отладки, когда я проверяю ( нажимаю F12 ) перед точками останова и продолжаю запуск, тест пройден. Поэтому мой вопрос заключается в том, почему можно щелкнуть по элементам и что я должен сделать, чтобы предотвратить повторение этой ситуации. Большое спасибо!
Комментарии:
1. Просто подождите, пока элемент не станет интерактивным, затем нажмите
Ответ №1:
Вы должны добавить ожидание / задержку перед доступом к элементам, чтобы элементы были полностью загружены на страницу перед доступом к ним.
Самый простой способ-добавить жестко закодированный сон, например
time.sleep(5)
Лучший способ — использовать явный способ, реализованный ожидаемыми условиями.
Ответ №2:
Несколько вещей, которые нужно записать,
- Всегда запускайте браузер в полноэкранном режиме.
driver.maximize_window()
этот код должен быть написан до driver.get()
- Всякий раз , когда вы получаете
element not interactable
, попробуйте использовать цепочки действий для нажатия илиsend_keys
:
что-то вроде этого :-
from selenium.webdriver.common.action_chains import ActionChains
action = ActionChains(driver)
action.move_to_element('your web element here').click().perform()
- Убедитесь, что при использовании Selenium нужный веб-элемент должен находиться в порту просмотра Selenium.
чтобы решить эту проблему, вам, возможно, придется прокрутить страницу вниз, чтобы сообщить Selenium, где именно находится элемент.