使用watir webdriver或selenium设置cookie

Gal*_*let 4 ruby cookies watir-webdriver selenium-webdriver

创建驱动程序: -

profile = Selenium::WebDriver::Firefox::Profile.new 

driver = Watir::Browser.new :firefox, profile: profile

url= 'http://www.example.com'
Run Code Online (Sandbox Code Playgroud)

添加cookies: -

driver.cookies.add("test","1",{expires: 10.days.from_now})

driver.goto url
Run Code Online (Sandbox Code Playgroud)

我的cookie没有在回复中返回.

如果我在cookie中添加域名.

driver.cookies.add("test","1",{expires: 10.days.from_now, domain: 'example.com'})
Run Code Online (Sandbox Code Playgroud)

它说的错误如下: -

Selenium::WebDriver::Error::InvalidCookieDomainError: You may only set cookies for the current domain
Run Code Online (Sandbox Code Playgroud)

任何人都可以帮我解决这个问题吗?

小智 5

你必须在你正在设置cookie的域名上,所以试试:

driver.goto url
driver.cookies.add("test","1",{expires: 10.days.from_now})
Run Code Online (Sandbox Code Playgroud)

现在它应该出现在你所在的同一个域上:

driver.cookies.to_a
Run Code Online (Sandbox Code Playgroud)

假设您需要active_support/time(以使到期工作).