Ruby on rails 黄瓜/水豚/硒-制作饼干

Ruby on rails 黄瓜/水豚/硒-制作饼干,ruby-on-rails,testing,selenium,cucumber,capybara,Ruby On Rails,Testing,Selenium,Cucumber,Capybara,对于我的测试用例,我尝试用以下方法设置cookies,但是没有设置 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(

对于我的测试用例,我尝试用以下方法设置cookies,但是没有设置

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
  })

如果我错过了什么,或者我必须以其他方式来做,请告诉我。

水豚必须先访问您正在测试的网站。在设置任何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
获取驱动程序。这和水豚是一样的。当前会话。驱动程序

第一种变体对我来说很好。请详细说明你所说的
它不被设置的意思
对我有效,尽管我用
page.driver.browser.manage.add_cookie()
来称呼它。它很大程度上取决于实际的驱动程序:请参阅。