t.me/atinfo_chat Telegram группа по автоматизации тестирования

Проблема с кликом по элементу


(Alexander Petrovich) #1

Привет.

Столкнулся с проблемой. Есть неоторая форма, в которой следующиt пункты открываются java-script'ом при клике по элементам списка. По-умолчанию форма не отображается до того момента, пока не будет заполнено некоторое поле, однако найти её по xpath локатору можно. Никаких атрибутов типа visible к ней не прилагается.

До этого спокойно использовал такую конструкцию

def wait_for_element_to_load(driver, element):
    try:
        return WebDriverWait(driver, 10).until(lambda driver : driver.find_element_by_xpath(element))
    finally:
        pass

В данном случае она не подходит, ибо форма уже загружена. При попытке кликнуть в элемент получаю ошибку:

ElementNotVisibleException: Message: u'Element must be displayed to click'

Фишка в том, что после заполнения поля, о котором упоминалось выше, сабжевая форма банально не успевает отрендериться. Можно, конечно просто использовать паузу на 2 секунды, например, но хотелось бы более гибкого решения.


(Mykhailo Poliarush) #2

надо использовать ActionChains класс, в котором можно будет описать последовательность действий, которую надо выполнить

примеры уже были упомянуты в ветке http://automated-testing.info/forum/rabota-so-skryvayushcheysya-formoy


(Taras) #3

Вы можете использовать тот же java script который у вас открывает эту форму, просто напишите функцию с Java script executor-ом которая будет возвращать этот скрипт на return-е