driver.close () будет висеть вечно - PullRequest
0 голосов
/ 21 марта 2019

driver.close () не работает на Jenkins, и весь тест будет зависать вечно.Я использую Selenium Grid с Java и Chrome Driver.

Я не хочу пользователя driver.quit().Я должен использовать driver.close().У меня есть две открытые вкладки, и я должен закрыть одну.

public static void closeBrowser() 
{ 
    try 
    { 
       WebDriver testDriver = BrowserFactory.getInstance().getDriver(); 
        if (testDriver != null) 
        { 
            testDriver.close();
        } 
        wait.wait(2); 
        Log.info("Closing the browser"); 
    } 
    catch (Exception e) 
    { 
        Log.info("Cannot close browser"); 
    } 
}

Раньше это работало и начало происходить недавно.

Ответы [ 3 ]

0 голосов
/ 22 марта 2019

Попробуйте следующее:

driver.findElement(By.cssSelector("body")).sendKeys(Keys.CONTROL + "w");

Этот код закроет открытую в данный момент вкладку.

0 голосов
/ 03 апреля 2019

Лучшее решение, которое я нашел, чтобы закрыть окно:

((JavascriptExecutor) BrowserFactory.getInstance().getDriver()).executeScript( "window.close()" );
0 голосов
/ 21 марта 2019

Не имея деталей вашего тестового сценария, я могу предложить заменить driver.quit() там, где вы хотите завершить сеанс;из документации Selenium , driver.quit() закроет все окна браузера, в то время как driver.close() только "закроет текущее окно, выйдя из браузера, если это последнее открытое окно."

НИКОГДАПОМНИТЕ, ЧТО

В вашем классе BrowserFactory метод getDriver() был определен с использованием driver.get().Это говорит водителю получить ... ничего, здесь не передаются аргументы для URL.Может ли это быть причиной проблемы?

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