Cucumber / Capybara / Selenium - 设置饼干

时间:2013-06-04 05:35:20

标签: ruby-on-rails testing selenium cucumber capybara

对于我的测试用例,我尝试使用以下方式设置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
  })

如果我错过了任何内容或者我必须以其他方式执行此操作,请告诉我

1 个答案:

答案 0 :(得分:1)

Capybara必须先访问您正在测试的网站。这是您设置任何cookie之前必需的步骤。

这有效:

visit '/'
browser = Capybara.current_session.driver.browser
browser.manage.add_cookie name: "name", value: "value"

为获得最佳性能,只需运行此步骤一次,或查看cookie是否已设置。以下是设置cookieconsent cookie的实际代码,该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相同。

相关问题