NoSuchSessionException-会话ID为null。调用quit()后使用WebDriver吗?

时间:2019-02-12 16:20:11

标签: java selenium webdriver

我想自动化一个网站。我打算使用的工作流程是:登录(窗口)->保存cookie->启动新的无头驱动程序并分配cookie->启动自动化。 直到自动化开始,这才起作用,然后标题中出现错误。 (如果我不切换会话,自动化的东西将起作用)。 预先感谢!

//login

Set<Cookie> allCookies = driver.manage().getCookies();
driver.quit();
FirefoxOptions options = new FirefoxOptions();
driver = new FirefoxDriver(); // for testing purpose I deleted the headless options
openUrl(url);
for(Cookie cookie : allCookies){
    driver.manage().addCookie(cookie);
}
driver.navigate().to(url);
// automation stuff

1 个答案:

答案 0 :(得分:0)

我认为您已经回答了这个问题。错误消息指出您没有会话,通常由driver.quit()调用。 正如您自己说的那样,如果您不切换会话(不确定您的意思),它将起作用。

在某些时候,您将切换到未实例化的空驱动程序。

看着上面的代码,我不知道什么

openUrl(url)

可以,但是如果此方法位于无法访问实例化驱动程序的其他页面对象中(从构造函数访问),则您可能正在尝试导航至空驱动程序上的url。

或者,或者您要添加一些不良的Cookie