SessionNotFoundException 用 Selenium + geb 打开一个新的浏览器

SessionNotFoundException opening a new browser with Selenium + geb

我想在我的测试中关闭并开始一个新的 browser/window,所以我尝试了:

browser.close();
driver.close();
driver = new ChromeDriver()

输出:

org.openqa.selenium.remote.SessionNotFoundException at myTest.groovy:169

169 号线是:

driver.close();

我放在 browser.close() 之后的所有内容都会输出相同的错误。

我也尝试过存储 cookie 和配置: 设置 allCookies = driver.manage().getCookies();

for(Cookie cookie : allCookies)
            {
                driver.manage().addCookie(cookie);
                System.out.println(cookie);
            }
            browser.driver = browser.config.driver */           

我的GebConfig.groovy:

driver = {
    System.setProperty('webdriver.chrome.driver', '.\drivers\ChromeDriver\chromedriver.exe')
    newDriver = new ChromeDriver()
    newDriver.manage().window().maximize();

    autoClearCookies = false
    return newDriver;

    }

我需要做的就是关闭当前 window,打开一个新的并开始另一个测试。

请注意,browser.close() 调用了 driver.close(),因此您实际上调用了 driver.close() 两次。

您真正需要的是通过调用 CachingDriverFactory.clearCacheAndQuitDriver() 清除驱动程序缓存(我假设您使用的是默认缓存),然后创建 [=14 的新实例=] 使用 browser = new Browser() 将创建 Driver.

的新实例