3

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

让我知道我是否错过了什么或者我必须以其他方式做

4

1 回答 1

2

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

这有效:

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

为获得最佳性能,请仅运行此步骤一次,或查看 cookie 是否已设置。这是设置cookieconsentcookie 的实际代码,它绕过了 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

于 2017-11-15T11:03:45.177 回答