Firefox Watir webdriver不存储所有cookie

Firefox Watir webdriver不存储所有cookie,firefox,cookies,watir-webdriver,Firefox,Cookies,Watir Webdriver,当我转到firefox(V-12)上的以下链接时,Ubuntu机器上的浏览器允许我正常登录 但是,如果我使用watir webdriver,我会收到这样一条消息:“必须启用Cookie才能登录。” 以下是使用Watir重现此问题的代码: require 'watir-webdriver' browser = Watir::browser.new browser.goto "https://r.espn.go.com/members/v3_1/login?language=en&forw

当我转到firefox(V-12)上的以下链接时,Ubuntu机器上的浏览器允许我正常登录

但是,如果我使用watir webdriver,我会收到这样一条消息:“必须启用Cookie才能登录。”

以下是使用Watir重现此问题的代码:

require 'watir-webdriver'
browser = Watir::browser.new
browser.goto "https://r.espn.go.com/members/v3_1/login?language=en&forwardUrl=&appRedirect=http%3A%2F%2Fgames.espn.go.com"
您会注意到浏览器在“电子邮件地址或成员名称”字段下方显示“必须启用Cookies”错误消息。当我查看存储的cookies时,我注意到并非所有以正常模式存储的cookies都可用。我通过在存储的cookies中搜索“go.com”来比较这一点

你知道是什么原因导致使用同一浏览器在两种模式之间存储的cookie不一致吗


谢谢

watir webdriver没有问题或不一致。这里发生的事情是网站编码方式的结果

您正在访问的页面()旨在作为覆盖。无论是谁编写了站点代码,都假定在点击主页之后,覆盖页面总是可以访问的。因此,主页()设置一个cookie,以测试您的用户代理是否启用了cookie。然后,带有登录表单的覆盖页检查测试cookie是否存在,如果不存在,则显示您看到的警告

需要了解的是,
watir webdriver
默认为每个新浏览器实例的干净配置文件。这意味着浏览器没有任何cookie、扩展、首选项或浏览历史记录。由于clean配置文件从未访问过以接收测试cookie,因此将显示警告

有两种方法可以避免此警告:

  • 您可以在登录页面之前访问主页,如下所示:

    require 'watir-webdriver'
    browser = Watir::Browser.new
    browser.goto "espn.go.com"
    browser.goto "https://r.espn.go.com/members/v3_1/login?language=en&forwardUrl=&appRedirect=http%3A%2F%2Fgames.espn.go.com"
    
  • 或者,您可以使用默认的Firefox配置文件,该配置文件(可能)已经有测试cookie:

    require 'watir-webdriver'
    browser = Watir::Browser.new :firefox, :profile => "default"
    browser.goto "https://r.espn.go.com/members/v3_1/login?language=en&forwardUrl=&appRedirect=http%3A%2F%2Fgames.espn.go.com"
    

  • 希望有帮助

    我发现这更像是一个网站问题。我可以通过点击“登录”并在弹出框中登录来绕过这个问题。看起来,当网站从主URL发送到登录URL时,它会写入一些cookie,而登录URL通过直接转到登录URL而被跳过。