如何查看Rspec/Capybara页面上是否存在链接?

Nit*_*tal -1 ruby rspec ruby-on-rails capybara

我在水豚有2个场景.第一个检查页面上是否存在链接,第二个检查是否存在链接.

我能够通过使用以下方法获得第一次测试:

expect(page).to have_link('act_id')
Run Code Online (Sandbox Code Playgroud)

我尝试使用以下方法进行第二次测试.

expect(page).to not_have_link('act_id')
Run Code Online (Sandbox Code Playgroud)

但我得到以下错误

NoMethodError: undefined method `not_have_link'
Run Code Online (Sandbox Code Playgroud)

如何测试页面上是否存在链接?

Ruby版本:2.2

Rails版本:4.2

jfo*_*off 5

expect(page).to have_no_link('act_id')
Run Code Online (Sandbox Code Playgroud)

  • 实际上,在使用 RSpec 匹配器(本示例就是)时,这些复杂性并不存在。在这种情况下,`.not_to have_link` 和 `.to have_no_link` 在功能上是等效的,因为 RSpec 处理 not_to/to_not 的方式。如果您使用布尔检查(has_link?,has_no_link?等)或 Capybara 提供的 assert_xxx 方法,则确实存在您提到的复杂性 - (2认同)