Задать вопрос

Как протестить удаление с помощь Selenium?

Нахожу вот таким способом все ссылки на удаление картинок со страницы
for i in driver.find_elements_by_xpath("//h4/a"):
            print i.get_attribute("href")
            i.click()


print показывает ссылку - javascript:delImage(2879)

а вот click срабатывать не хочет, выдает ошибку - ElementNotVisibleException: Message: element not visible

пробывал просто принтовать i, все вроде как есть

В чем ошибка?
  • Вопрос задан
  • 634 просмотра
Подписаться 4 Оценить Комментировать
Решения вопроса 1
@nirvimel
Дело в том, что метод click создает событие click, которое имеет свойства screenX и screenY, то есть должно происходить на "видимом" экране. Работа через Selenium не меняет того факта, что браузер и все скрипты на странице работают с неким "видимым" экраном. Иначе одной строкой на js можно было бы легко выявить весь обман и отсутствие живого человека по ту сторону браузера.
Но find_elements_by_xpath возвращает все соответствующие данному xpath элементы дерева в независимости от их реальной видимости. При этом невозможно вызвать click на элементе за пределами "видимого" экрана.
Частично решить эту проблему можно путем вызова scrollIntoView на элементе перед click. Но у этого метода тоже могут возникать проблемы с элементами, у которых (или у их родителей) style="display:none".
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
Было бы хорошо видеть кусок DOMa, что бы сказать, что не так.
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы