使用capybara has_context一次检查多行

时间:2012-07-09 14:23:29

标签: ruby-on-rails selenium cucumber capybara

我有一个网页,我以打印机友好格式显示,标题后跟属于该组的项目。 例如:

Headline1
=========
Item1
Item2
Item3

Headline2
=========
Item4
Item5

我想使用黄瓜+水豚来运行功能测试并验证页面是否具有正确的内容。 我怎么能这么简单呢?因为我想确保每个项目都以正确的标题结束。

我的第一次尝试是使用

page.should have_content"Headline1
=========
Item1
Item2
Item3

Headline2
=========
Item4
Item5"

但这给了我一个奇怪的错误:

expected there to be content "Headline1\n=========\nItem1\n and so on" in "Headline1\n=========\nItem1\n and so on"

换句话说,两条线完全一样!为什么这不起作用? 任何解决方法? 请注意,该页面仅包含基本文本,因此没有div项目或我可以在其中查看。

1 个答案:

答案 0 :(得分:2)

page.textinclude?match方法结合使用。

http://robots.thoughtbot.com/post/8399836754/multiline-strings-in-capybara http://praktikanten.brueckenschlaeger.org/2011/11/15/working-in-cucumber-with-new-lines-and-have_content

来自第一个链接的引用:

  

在Capybara中检查多行字符串时,您需要使用   page.text因为page.source不保留新行 - 所以“a \ nb”   将在page.source中显示为“a b”。