Есть отличная удаленная работа для php+codeception+jenkins+allure+docker спецов. 100% remote! Присоединиться к проекту

Selenium Webdriver - Internet Explorer - window_handles


(ahanoff) #1

Автоматизаторы, привет.

Тестируем с помощью Selenium Webdriver, тесты пишутся на Python. Прогоны должны быть на Firefox 10 и Internet Explorer 8.0 по требованиям заказчика.

Так вот, в приложении есть модальные окна. 

Для их обработки вебдрайвером в случае firefox-а, создаем новый поток в тесте:

thread.start_new(cls._get_displayed_element(modal_window_locator).click, ())

В случае Internet Explorer такой hack не работает. Если необходимо, могу позже выложить сообщения консоли. Но модальные окна в IE прекрасно открываются без какого-либо потока. 

Затем я пытаюсь открыть еще одно окно из модального, и тут начинаются проблемы. Число открытых окон и число handle-в в драйвере не совпадает.

 

Кто что может подсказать? 

Спасибо.


(apetrovskiy) #2

Попробуйте pywinauto - с хэндлами работает нормально. Я на питоне писец никакой, вот на диске завалялось несколько скриптов - когда-то, много лет назад, провально пробовал автоматизировать приложение на инфраджистике. pywinauto, конечно, уже не помню, но судя по коду, омжно брать окна и верхнего, и не только уровней через FindWindow или FindWindowEx:

 

from pywinauto import application
from pywinauto import findwindows
import time
 
app = application.Application();
wnd = app.connect(title_re = "our world-wide known app");
frm = app.window_(title_re = "our world-wide known app");
 
ww = findwindows.find_windows(top_level_only=False, class_name_re = ".*WindowsForms10.Window.[0-9]+?.app.0.([0-9a-f]){7,8}.*");
for w2 in ww:
    w3 = app.window_(handle = w2);
    text = w3.Texts();
    if text.count() > 0:
        print text;
    if text == "our app's title":
        pass
print "3 sec";
time.sleep(3);
mnu = app.windows_(class_name_re = ".*WindowsForms10.Window.20008.app.0.[0-9a-f]{7,8}");
print mnu;
for mnu1 in mnu:
    print mnu1;
 
ЗЫ Питоном для чайников по рукам не бейте - я вообще почти никогда на нём не пишу :)

(Mykhailo Poliarush) #3

ссылка на похожее обсуждение http://automated-testing.info/forum/kak-vy-borites-s-modalnymi-oknami-v-selenium

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

высылайте, что пишется у вас в консоли, но сразу говорю, не факт что вы решите проблему

лучше всего сразу писать сюда ссылка http://code.google.com/p/selenium/issues/detail?id=284#c111

хотя там фича уже лежит с 2009 года :)