Как закрыть диалоговое окно подтверждения, открытое другим окном в GEB

В одном из моих функциональных тестов GEB у нас есть ситуация, когда мы открываем новое окно, используя

withNewWindow({ button.click() }, "close": true, "wait": true) {
   //Other things
}

Теперь, когда это окно закрывается, открывается диалоговое окно подтверждения, в котором говорится, хотите ли вы покинуть эту страницу или нет. Как закрыть это диалоговое окно подтверждения?

Я знаю, что есть метод withConfirm для закрытия диалогов подтверждения, но я ничего не делаю, чтобы открыть/закрыть его, а вместо этого withNewWindow открывает/закрывает его.

Я пробовал разные варианты, но не мог понять, как это сделать. Я просмотрел документы, но не смог найти никаких примеров для этого.


person Aseem Bansal    schedule 26.06.2015    source источник


Ответы (1)


Вам нужно будет передать false для опции close для withNewWindow(), а затем обернуть закрытие вновь открытого окна вызовом withConfirm() в таком случае:

withNewWindow({ button.click() }, close: false, wait: true) {
    //Other things
    withConfirm { driver.close() }
}
person erdi    schedule 29.06.2015
comment
Любая идея о закрытии окон уже присутствует? Получение org.openqa.selenium.UnhandledAlertException: неожиданное модальное диалоговое окно (текст: эта страница просит вас подтвердить, что вы хотите уйти — введенные вами данные могут быть не сохранены.) Предупреждение исчезло до того, как его можно было закрыть.: На самом деле попытка чтобы закрыть все окна, кроме текущего, путем повторения браузера.getAvailableWindows() - person Aseem Bansal; 08.07.2015
comment
Я не понимаю, о чем вы просите. Должны ли вы опубликовать новый вопрос? - person erdi; 08.07.2015