gpt4 book ai didi

ruby-on-rails - 如何在 cucumber + capybara 步骤定义中设置 HTTP_REFERER?

转载 作者:行者123 更新时间:2023-12-03 11:12:00 25 4
gpt4 key购买 nike

如何为使用 capybara 从 cucumber 步骤定义发出的请求设置 HTTP_REFERER 请求 header ?

谷歌搜索,我尝试了以下方法,但都不起作用:

header 'Referer', 'http://example.com/'
ENV['HTTP_REFERER'] = 'http://example.com/'
get '/', {}, { 'HTTP_REFERER' => 'http://example.com/' }
get '/', nil, { 'HTTP_REFERER' => 'http://example.com/' }
request.env['HTTP_REFERER'] = 'http://example.com/' # raises ArgumentError

visit '/'

我正在 Controller 中打印 request.env['HTTP_REFERER'] ,以证明它没有通过。如果我使用 Web 浏览器测试 Controller ,则可以正确打印引用。

请注意,上面 get 的 3 参数使用实际上确实将 HTTP_REFERER 带入了 Controller 观察到的请求环境中,但它似乎以一种我无法弄清楚的方式扰乱了请求;所有被渲染的都是一个 doctype 元素。

我使用默认的 cucumber 驱动程序,Cucumber::RackTest::Driver,带有 cucumber -1.1.3、 cucumber - rails -1.2.0 和 capybara -1.1.2。

最佳答案

由于我使用的是 Cucumber::RackTest::Driver,在撰写本文时我的解决方案是:

Capybara.current_session.driver.header 'Referer', 'http://example.com'

此解决方案的灵感来自以下 capybara 上未合并的拉取请求:

https://github.com/thoughtbot/capybara-webkit/issues/198

关于ruby-on-rails - 如何在 cucumber + capybara 步骤定义中设置 HTTP_REFERER?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8401338/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com