Возникла проблема при закрытии окна в системе Debian.
Имеются 2 теста. В конце каждого теста проверяется печать договора. Как это происходит:
1. Нажимаем на кнопку "Напечатать", открывается 2 окна, одно с договором, второе - системное, для выбора принтера, числа копий и т.д
2. Системное окно я обрабатываю (посылаю либо Esc, либо Alt+F4)
3. Переключаюсь на окно с договором
4. Проверяю правильность договора
5. Закрываю окно с договором
6. Переключаюсь на основное окно, где начинается второй тест
Суть в том, что под Windows обработка и переключение окон отрабатывают корректно, под Debian - нет. Код:
void checkOrderPrintPage(Map orderParams, Class pageClass) { def handle = selenium.getHandle() selenium.click("//input[@value='Напечатать']") selenium.waitForPopUp("mywindow", 30000) Robot robot = new Robot() robot.keyPress(VK_ESCAPE) // закрыли системное окно robot.keyRelease(VK_ESCAPE) selenium.selectWindow("mywindow") // тут проверка договора selenium.close() selenium.selectWindow(handle)
Небольшая проверочка перед выполнением каждого теста:
@BeforeMethod void countWin() { def handle = selenium.getHandle() def countWindows = selenium.driver.getWindowHandles().size() System.out.println(countWindows) // после первого теста тут "2" if (countWindows > 1) { selenium.selectWindow("mywindow") System.out.println("Переключились на окно с печатью!") // selenium.close() // не работает Robot robot = new Robot() robot.keyPress(VK_ALT) robot.keyPress(VK_F4) robot.keyRelease(VK_F4) robot.keyRelease(VK_ALT) selenium.selectWindow(handle) System.out.println(countWindows) // тут по прежнему "2" } }Т.е ни close(), ни Alt+F4 это окно закрыть не могут.
Подскажите как это можно обойти, или возможно я что-то не так делаю.
Скрины окон под Windows и Debian прилагаю.
Спасибо!
debianPrint.png 144,65К 36 Количество загрузок:
windowsPrint.png 119,22К 29 Количество загрузок: