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

时间:2016-09-26 08:29:44

标签: selenium groovy geb

我想在我的测试中关闭并启动一个新的浏览器/窗口,所以我尝试了:

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

输出:

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

Linea 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 */           

My GebConfig.groovy:

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

    autoClearCookies = false
    return newDriver;

    }

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

1 个答案:

答案 0 :(得分:0)

请注意browser.close()调用driver.close(),因此您基本上会调用driver.close()两次。

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