如何向水豚请求添加标头?

kap*_*pso 0 capybara capybara-webkit ruby-on-rails-4.2

有没有办法将 HTTP 标头添加到 Capybara 请求/测试中。

我正在使用以下宝石。

capybara (2.4.4)
capybara-webkit (1.5.2)
chromedriver-helper (1.0.0)
rails (4.2.6)
Run Code Online (Sandbox Code Playgroud)

以下是水豚设置:

Capybara.register_driver :chrome do |app|
  Capybara::Selenium::Driver.new(app, browser: :chrome)
end

Capybara.javascript_driver = :chrome

Capybara::Screenshot.register_driver(:chrome) do |driver, path|
  driver.browser.save_screenshot(path)
end
Run Code Online (Sandbox Code Playgroud)

Tho*_*ole 5

如果您使用的是 capybara-webkit (如 Gemfile 所示),您可以使用该page.driver.header方法 - https://github.com/thoughtbot/capybara-webkit#non-standard-driver-methods。但是,如果您实际上使用 selenium 作为驱动程序(如驱动程序注册所示),那么如果不配置某种请求修改代理(browsermob 等),则无法添加标头。

话虽如此,您确实应该问自己为什么想要/需要设置额外的标头,但您可能正在尝试测试一些更好的东西,这些东西直接作为请求测试而不是使用 Capybara 进行功能/系统测试进行测试