Firefox 如何制作;保持登录状态”;在SeleniumWebDriver中工作?

Firefox 如何制作;保持登录状态”;在SeleniumWebDriver中工作?,firefox,cookies,selenium-webdriver,Firefox,Cookies,Selenium Webdriver,我在一个类似使用firefox的网站上工作,点击右上角的“登录”后,我被带到下一个登录页面,在“登录”按钮的右侧,有一个“保持登录”复选框,已经选中 我手动测试了它。似乎在我成功登录之后,如果我没有通过注销退出页面,而是简单地关闭页面,那么下次我进入时,我已经登录了。好的,有道理 但是,如果使用SeleniumWebDriver、登录、关闭页面、再次打开页面进行测试,则不会发生上述情况 我的问题是,这种“保持登录”的机制是什么,是否与“记住我”相同?在使用SeleniumWebDriver时,如

我在一个类似使用firefox的网站上工作,点击右上角的“登录”后,我被带到下一个登录页面,在“登录”按钮的右侧,有一个“保持登录”复选框,已经选中

我手动测试了它。似乎在我成功登录之后,如果我没有通过注销退出页面,而是简单地关闭页面,那么下次我进入时,我已经登录了。好的,有道理

但是,如果使用SeleniumWebDriver、登录、关闭页面、再次打开页面进行测试,则不会发生上述情况

我的问题是,这种“保持登录”的机制是什么,是否与“记住我”相同?在使用SeleniumWebDriver时,如何实现这一点

到目前为止,我的理解是:

  • 这是因为cookie
  • cookie存储在firefox配置文件中
  • selenium从一个默认配置文件开始,该配置文件不包括cookie,并且在测试期间不能存储cookie
  • 对于这个问题有没有一个相对标准的解决方案,最好用java


    谢谢,

    据我所知,使用Selenium加载FF的每个实例都会打开一个没有历史记录/cookies/扩展等的精简浏览器。这就好像您刚刚下载了FF,而且是一个新的副本。我不知道如何解决这个问题。如果您通过不关闭浏览器而手动注销并不关闭浏览器来保持会话打开,则可能会发生这种情况。或者打开一个新选项卡并打开相同的地址。

    您可以尝试存储cookie并将其应用到新的firefox实例 使用以下方法获取cookies:

    Set<Cookie> cookies = driver.manage().getCookies();
    
    for(Cookie cook : cookies) {
        driver.manage().addCookie(cook);
    }