对于我的测试用例,我尝试用以下方法设置cookie,但它没有得到设置
1)browser = Capybara.current_session.driver.browser
browser.manage.add_cookie :name => "xxx", :value => "cookie"
2)driver = Capybara.current_session.driver
br = driver.browser.send(:bridge)
br.addCookie({
'name' => "xxx",
'domain' => "localhost",
'value' => "cookie",
'path' => '/',
'expires' => (Time.now + 100.years).to_i
})
如果我错过了什么,请告诉我,或者我必须以其他方式做
Capybara必须首先访问您正在测试的网站。这是一个必要的步骤,然后你可以设置任何cookie。
如此:
visit '/'
browser = Capybara.current_session.driver.browser
browser.manage.add_cookie name: "name", value: "value"
为了获得最佳性能,要么只运行此步骤一次,要么查看cookie是否已经设置。下面是设置cookieconsent
cookie的实际代码,它绕过了cookie墙。
browser = page.driver.browser
unless browser.manage.cookie_named("cookieconsent")
visit '/'
browser.manage.add_cookie name: "cookieconsent", value: "dismiss"
end
我使用page.driver
来获得驱动程序。这和Capybara.current_session.driver
是一样的