对于我的测试用例,我尝试通过以下方式设置 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
相同。
关于ruby-on-rails - Cucumber/Capybara/Selenium - 设置 cookie,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16910477/