Как ждать в селене для переключения на новые окна - PullRequest
0 голосов
/ 12 сентября 2018

Здравствуйте, я хочу узнать, как переключиться на новое окно без использования режима сна. Я пытался использовать артефакт ожидания, но не смог сделать это правильно. Я пытался автоматизировать окно печати. Когда я нажимаю на значки печати на своей веб-странице, я перехожу к окну печати. ​​Я хочу подождать, пока перехожу к окну печати, и после отображения окна печати я хочу нажать кнопку отмены. Может ли кто-нибудь помочь мне в этом

Print_icon.click();
await().atMost(10,TimeUnit.SECOND).pollInterval(1,TimeUnit.SECONDS);
    Cancel_button.click();

Ответы [ 2 ]

0 голосов
/ 13 сентября 2018

Вы можете попробовать это:

Print_icon.click();

for (String winHandle : driver.getWindowHandles()) {
    driver.switchTo().window(winHandle);
}

boolean elmnt = false;
boolean timeOut = false;
int second = 1;
do {
    try {
        if(second>30) {
            timeOut = true;
        }
        Cancel_button.click();
        elmnt=true;
    } catch (Exception e) {
        TimeUnit.SECONDS.sleep(1);
        second++;
    }
}while(elmnt==false && timeOut==false);
0 голосов
/ 12 сентября 2018

Вы не можете обрабатывать диалоговые окна Windows, поэтому я предлагаю вам просмотреть код вашей страницы и найти имя метода, который открывает окно печати и переопределить его. Например, в вашем тестовом примере вы можете переопределить метод печати, чтобы ничего не делать, например:

((JavascriptExecutor)driver).executeScript("window.print=function(){};");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...