黄瓜水豚换行符

Tom*_*Tom 0 cucumber capybara rspec-expectations

我正在将黄瓜和水豚一起使用。我注意到,在安装捆绑软件之后,突然之间,我的测试失败了,新的换行符作为文本的一部分出现在字符串中。

错误示例:

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

过去,那些换行符不存在。我正在努力寻找导致此问题的宝石。

有没有一种方法可以停止此操作,而无需在我从网页提取的每个字符串中都做一个剥离?

一些gem版本:

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

Tho*_*ole 6

您确定要使用Capybara 2.18吗?这是一种在Capybara 3中更改的行为,在该行为中,现在希望驱动程序返回的文本更接近显示给用户的文本-https: //github.com/teamcapybara/capybara/blob/master/UPGRADING.md#node。如果您确实不使用Capybara 3.x,则可能已更新了与Capybara一起使用的驱动程序,并且该驱动程序不再支持Capybara 2.x的行为。

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

expect(element).to have_text('Longview Road Clase Swansea SA6 7JL', normalize_ws: true)
Run Code Online (Sandbox Code Playgroud)

复制更多类似2.x的行为

  • 我已经在我的 `spec_helper` 中设置了 `Capybara.default_normalize_ws = true`,我现在一切都很好。我理解更新,但我觉得在发布时默认为“true”会破坏更少的规范。 (2认同)