Capybara page.has_text?用错误的文字返回成功?

时间:2016-10-27 15:09:28

标签: capybara

也许我只是使用这个错误,因为我以前使用过Rspec的匹配器(expect(page).to have_content('foo')

但是我不确定哪个是真的“最好”使用,所以我尽可能坚持使用Capybara确定范围。

无论如何,我有一段基本代码可以检查登录时的弹出文本: page.has_text?('Signed in successfully.')

够容易吗?好吧,我可以将文本更改为任何内容,例如: page.has_text?('THIS IS WRONG')

它仍然通过?我只是错了吗?

1 个答案:

答案 0 :(得分:1)

如记录#has_text?只是一个布尔方法,它将返回true或false。它不是断言,因此除非您检查响应是真还是假,否则不会导致测试失败。如果您想使用rspec检查页面上是否存在文本,那么您应该使用以前使用的文本

expect(page).to have_content('expected text')

have_content匹配器(别名为have_text)是由Capybara提供的匹配器,专为您正在做的事情而设计。 如果您不再使用RSpec,那么您可以

page.assert_text('expected text')