Cucumber Capybara 中的新行字符

New line characters in Cucumber Capybara

我将 Cucumber 与 Capybara 一起使用。我突然注意到,在安装捆绑包后,我现在的测试失败了,换行符作为文本的一部分出现在字符串中。

示例错误:

RSpec::Expectations::ExpectationNotMetError: expected to find text "Longview Road Clase Swansea SA6 7JL" in "Skip to main content\nGOV.UK\nDigital tachograph card\n......."

以前没有换行符。我正在努力查明是哪个 gem 造成的。

有没有办法在不需要对我从网页中提取的每个文本字符串进行剥离的情况下停止这种情况?

一些 gem 版本:

水豚 - 2.18 Rspec-预期 - 3.7.0 黄瓜 - 2.4.0

您确定您使用的是 Capybara 2.18 吗?这是一个在 Capybara 3 中改变的行为,现在期望驱动程序 return 文本更接近显示给用户的内容 - https://github.com/teamcapybara/capybara/blob/master/UPGRADING.md#node。如果您真的没有使用 Capybara 3.x 那么您可能更新了您使用 Capybara 的任何驱动程序并且它不再支持 Capybara 2.x 行为。

如果您现在使用的是 Capybara 3.x,那么您要么需要更改测试以检查实际显示的内容(这是对页面上内容的更正确检查),要么您可以使用Capybara 3.5+ 版本向 text/content 匹配器添加了 normalize_ws 选项,因此您可以编写

expect(element).to have_text('Longview Road Clase Swansea SA6 7JL', normalize_ws: true)

复制更多2.x 喜欢的行为