Как работать с модальными окнами в WebDriver


(Vol) #1

Всем привет,

У меня проблема, рандомно выскакивает модальное окошко с месседжем которое закрывает доступ к элементу для клика.

Просечь когда оно отрывается довольно тяжело, а ждать на него нету смысла, т.к это займет довольно много времени.

 

Посоветуйте пожалуйста, как бороться с такими диалогами.

Добавлено:

Сейчас я разсматриваю два варианта:

1. ставить проверку на диалог в ключевых местах теста перед тем как делать клик (может сделать путаницу + добавляет много код саппорта)

2. переписать Click(), перед действием проверять на наличие диалога (возможно увеличение времени прохождения тестов)


(Mykhailo Poliarush) #2

работа с модальными окнами в вебдрайвере не очень легкая, там много чего не раализовано

сейчас работать с модальными окнами можно только IExplorer

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

также можно, как вариант подключить AutoIT, который будет постоянно висеть при прогоне ваших тестов, и как только будет появляться модальное окно сразу же будет его закрывать.


(Дмитрий Жарий) #3

 

Я поддерживаю вариант с AutoIT в отдельном процессе.

Либо можно повесить такой обработчик в отдельный поток (Thread). А экземпляр драйвера можно будет шарить через static переменную. Со многопоточностью обычно бывает больше мороки, но зато она дает полный контроль над происходящим.


(centurion2xx6) #4

По поводу второго варианта: 

для таких вещей мы на .Net используем White Framework или MS UI Automation. Второй дружит с IE как и в принципе со всем в Win OS.

Если рассматривать ожидание диалога в отдельном потоке:

По-моему при методе IWebElem.Click будет возникать эксепшен, т.к. скрытый элемент уже на странице, а хэндлер диалоговых окон скорее всего диалог ещё не успеет закрыть.


(Taras) #5

http://automated-testing.info/knowledgebase/article/webdriver-features-robota-s-upload-popup-windows-native-okno-pri-pomoshchi

Please, look here)