Элемент, с которым невозможно взаимодействовать

#selenium #serenity-bdd #cucumber-serenity

Вопрос:

У меня есть эта ошибка «элемент не взаимодействует», когда я пытаюсь щелкнуть раскрывающийся список с помощью selenium. Однако в режиме отладки, когда я проверяю ( нажимаю F12 ) перед точками останова и продолжаю запуск, тест пройден. Поэтому мой вопрос заключается в том, почему можно щелкнуть по элементам и что я должен сделать, чтобы предотвратить повторение этой ситуации. Большое спасибо!

Комментарии:

1. Просто подождите, пока элемент не станет интерактивным, затем нажмите

Ответ №1:

Вы должны добавить ожидание / задержку перед доступом к элементам, чтобы элементы были полностью загружены на страницу перед доступом к ним.
Самый простой способ-добавить жестко закодированный сон, например

 time.sleep(5)
 

Лучший способ — использовать явный способ, реализованный ожидаемыми условиями.

Ответ №2:

Несколько вещей, которые нужно записать,

  1. Всегда запускайте браузер в полноэкранном режиме.
     driver.maximize_window()
     

этот код должен быть написан до driver.get()

  1. Всякий раз , когда вы получаете 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()
 
  1. Убедитесь, что при использовании Selenium нужный веб-элемент должен находиться в порту просмотра Selenium.

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