Как перейти к главному окну после закрытия окна предупреждения окна в селене, используя Java - PullRequest
0 голосов
/ 19 июня 2019

Я использую Selenium 3.7.1 и Firefox последней версии 67.0.2, на самом деле я пытаюсь вернуться на свою домашнюю страницу после нажатия всплывающего окна на основе окон (нажал Ok, используя скрипт AutoIT).Но после закрытия всплывающего окна я не могу переключиться обратно в первое окно (т.е. на домашнюю страницу).В целом, есть два окна, которые открываются.

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

public void switchToNewWindow(int windowNumber) {
    Set<String> s = driver.getWindowHandles();
    Iterator<String> ite = s.iterator();
    int i = 1;
    while (ite.hasNext() && i < 10) {
        String popupHandle = ite.next().toString();
        driver.switchTo().window(popupHandle);
        System.out.println("Window title is : " + driver.getTitle());
        if (i == windowNumber)
            break;
        i++;
    }
}

Я получаю следующий вывод:

org.openqa.selenium.NoSuchWindowException:Контекст просмотра был отброшен

Ответы [ 2 ]

0 голосов
/ 24 июня 2019
String mainWindow = driver.getWindowHandle();

//here, your action to bring up a new window
driver.click    

for (String winHandle : driver.getWindowHandles()) {
        driver.switchTo().window(winHandle);
        if(!winHandle.equals(mainWindow)) {
            driver.close();
        }
}

//switch to main window
driver.switchTo().window(mainWindow);
0 голосов
/ 19 июня 2019

К вашему сведению:

Возможно, вам не нужно использовать AutoIt, вы можете принять предупреждение с помощью:

Alert alert = driver.switchTo().alert(); 

driver.switchTo().alert(); 

alert.accept();  

Просто используйте switchTo().defaultContent():

driver.switchTo().defaultContent();

Надеюсь, это поможет!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...