如何在Selenium webdriver中“保持登录”工作?

时间:2015-11-18 12:26:57

标签: firefox cookies selenium-webdriver

我使用firefox在https://jira.atlassian.com/这样的网站上工作,点击右上角的“登录”后,我进入下一个登录页面,“登录”按钮右侧,这是“保持登录状态”复选框,已经检查过。

我手动测试了它。似乎在我成功登录后,如果我没有通过注销退出页面,只是关闭页面,下次我输入https://jira.atlassian.com/时,我已经登录了。好的,有意义。

但是,如果使用selenium webdriver进行测试,请登录,关闭页面,再次打开页面,以上情况不会发生。

我的问题是这种“保持登录状态”的机制是什么,它与“记住我”是一样的吗?以及如何在使用selenium webdriver时实现这一目标?

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

  1. 这是因为cookie而发生的
  2. cookie存储在firefox个人资料中
  3. selenium以默认配置文件开头,该配置文件不包含cookie,并且在测试期间无法存储cookie
  4. 对于这个问题,是否有一个相对标准的解决方案,在java中最好?

    谢谢,

2 个答案:

答案 0 :(得分:0)

据我所知,每个使用Selenium加载FF的实例都会打开一个没有历史记录/ cookie /扩展等的剥离浏览器。就像你刚刚第一次下载FF一样新鲜的副本。我不知道如何解决这个问题。也许如果你通过不关闭浏览器来保持会话打开但是手动注销而不是关闭浏览器。或者打开一个新标签并打开相同的地址。

答案 1 :(得分:0)

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

Set<Cookie> cookies = driver.manage().getCookies();

然后将它们应用到新的webdriver实例:

for(Cookie cook : cookies) {
    driver.manage().addCookie(cook);
}