大家好我是 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中添加不同的域名?
答案 0 :(得分:3)
与 WATIR 类似,所有基于Selenium的框架都为Selenium预定义命令创建特定于语言的包装器。这些命令在Selenium Webdriver W3C标准中定义为 here 。
如果您转到 Cookies 部分,特别是addCookie
子部分,您会看到以下内容:
如果当前浏览上下文的文档元素是 cookie-averse Document object ,则返回错误错误代码无效的Cookie域。
您的domain
属性与您指定的url
绑定到同一个域。因此,基本上,您的域 HAS 与您当前的url
或url
的子域相同。
示例:对于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