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

Python Selenium. Как работать с модальными окнами?

Теги: #<Tag:0x00007f7483cdfa38> #<Tag:0x00007f7483cdf970> #<Tag:0x00007f7483cdf8a8> #<Tag:0x00007f7483cdf7b8> #<Tag:0x00007f7483cdf6f0>

Пишу тесты для тестирования веб интерфейса. Интерфейс - это админка написана на AngularJS. Для написания тестов использую py.test, selenium, pytractor. В админке очень много модальных окон, а вот как их подружить с selenium никак не пойму. Selenium не видит элементов модального окна. Подскажите, пожалуйста, в каком направлении копать? И возможно ли вообще решить эту проблему с моим набором инструментов?

Модальное окно - это что? Алерт, диалог загрузки/сохранения файла, всплывающее окно браузера, запрос на авторизацию, еще что-то?
В зависимости от этого работать с ними надо по-разному.

Не алерт, не диалог не окно браузера. Это новый div который добавляется Ангуляром и отображается поверх всей страницы.

xPath

Уже пробовал. (

selenium.common.exceptions.NoSuchElementException: Message: Unable to locate element: {“method”:“xpath”,“selector”:"//*[@id=“dialog3_1456928067967”]/div/form/div[3]/div/input"}

@id=“dialog3_1456928067967” = айдишник динамический, выкинь его, используй полный путь к элементу

1 Симпатия

Модальное окно случайно не обвёрнуто в iframe ?

Нет.

Вопрос решен. Ангуляр для многих элементов прописывает свои директивы. Вот по одной из таких директив и вышел на нужный мне элемент (By.XPATH, ‘//input[@ng-model=“zonecreate.name”]’).

Всем Большое Спасибо!