水豚不遵循 308 重定向

Capybara does not follow 308 redirect

我正在使用 Cucumber 和 Capybara 执行一些验收测试。

据我了解,capybara should follow redirects,据我所知,它确实...通常。

最近我们对基础架构进行了一些更改。此更改创建了一个 308 重定向代码,而不是之前生成的 301。使用此 308 代码,水豚似乎不再遵循它。

当运行我的测试时,我可以清楚地看到它没有:

expected to find text "Welcome" in "308 Permanent Redirect nginx/1.13.8" (RSpec::Expectations::ExpectationNotMetError)

我应该提一下,在过去(使用 301 重定向)完全相同的测试有效。

这是水豚虫吗?如果没有,我错过了什么?

这不是 capybara 不遵循 308s,而是您使用 capybara 的驱动程序不遵循 308s。该驱动程序是 capybara-webkit 并且取决于您构建它所针对的 QtWebkit 版本,它大致相当于一个 5-9 岁的旧浏览器,它并不真正支持现代浏览器所做的很多事情。如果你换成使用 selenium with headless chrome 作为至少一些测试的驱动程序(那些需要更新的浏览器功能的测试)

,那么你在浏览器支持方面的问题就会少很多