通过(Watir-)Webdriver调用时,Chrome/Firefox不会保留Cookie?

Eth*_*ron 8 firefox google-chrome webdriver watir-webdriver selenium-chromedriver

我正在为使用Ruby和Watir的客户端开发一个项目.他要求在重新加载应用程序时恢复会话(以便保存其登录状态).这是Chrome的正常行为(似乎),Firefox也可以选择这样做.

我已经尝试了所有我能想到的东西,似乎无法使用watir-webdriver来实现这一点.我已经指定Watir使用特定的配置文件(您认为它可以解决问题),确保所有设置都正确(它们是,因为它们在我自己启动浏览器时起作用).我尝试使用各种开关和配置文件选项,我认为可能有所帮助.没有.

所以,问题是,为什么会发生这种情况,我可以采取哪些措施来解决或解决这个问题?在这一点上,我几乎完全没有想法了.我甚至尝试在IRB中手动保存和重新加载cookie,但无济于事......

我知道这一定是可能的,因为当我手动登录网站时,关闭浏览器并重新打开它,我仍然登录.我需要重现这种确切的行为,但是在手册之间的某处出现了问题Chrome/Firefox的实例,以及由Watir控制的实例.

最后,我会提到我注意到,当我指定我的个人资料时,它会加载我的历史记录条目,但不会加载任何cookie.这让我越来越迷茫.

如果有人可以帮助我,我将不胜感激.

Eth*_*ron 3

好消息是我已经想出了一个解决方案。我想分享它,以防其他人遇到我的问题并解决这个问题。我向那些曾经这样做过的人致以最诚挚的歉意。

我最终的解决方案如下:

  1. 专门为应用程序创建 Firefox 配置文件
  2. 将 Firefox 设置为“恢复 Windows 和选项卡”。这不起作用(Watir/Selenium 的情况)并且只会忽略这些设置,即使 Firefox 识别了它们。
  3. 为了解决上述问题,我在 Selenium 中找到了一个 user.js 文件,在该文件中手动编辑“恢复 Windows 和选项卡”的设置,然后将该文件粘贴到我的 Firefox 配置文件目录(~/.mozilla/firefox)中/*).
  4. Firefox 在每次运行时都会将 prefs.js 中的首选项替换为 user.js 中的首选项。这解决了它。

我要指出的是,我实际上必须在 selenium-webdriver 本身中调整相当多的代码才能使这一切顺利运行。watir-webdriver 位于 selenium-webdriver 之上。