Selenium / Watir:尝试添加cookie时出现'InvalidCookieDomain'错误

时间:2017-06-08 06:50:50

标签: ruby-on-rails selenium watir

大家好我是 WATIR 或Selenium的新手,但我试图在我的WATIR浏览器中添加一个Cookie,如下所示:

browser = Watir::Browser.new :firefox    
browser.goto(url)
browser.cookies.add name,value, domain: ".www.example.com"

我收到以下错误提示:

  

Selenium :: WebDriver :: Error :: UnknownError:ReferenceError: InvalidCookieDomainError 未定义

但是,当我删除域选项时,它可以正常工作。

我想知道为什么我不能在我的Cookie中添加不同的域名?

2 个答案:

答案 0 :(得分:3)

WATIR 类似,所有基于Selenium的框架都为Selenium预定义命令创建特定于语言的包装器。这些命令在Selenium Webdriver W3C标准中定义为 here

如果您转到 Cookies 部分,特别是addCookie子部分,您会看到以下内容:

  

如果当前浏览上下文的文档元素是 cookie-averse Document object ,则返回错误错误代码无效的Cookie域

您的domain属性与您指定的url绑定到同一个域。因此,基本上,您的域 HAS 与您当前的urlurl的子域相同。

示例:对于url=global.nba.com,您可以为子域({domain: "global.nba.com"})以及根域({{1})设置Cookie })。

{domain: "nba.com"}

希望这有帮助!

答案 1 :(得分:0)

就我而言,我必须先进入网址,然后再设置Cookie,例如

      visit root_path
      ('f'..'k').each.with_index do |cookie, index|
        Helper::Browser.set_cookie(:esid, cookie)
        visit root_path
      end