期待Capybara找不到什么?

时间:2015-10-17 20:47:43

标签: ruby-on-rails ruby-on-rails-4 capybara

说我的应用程序中有一个“登录”按钮,可以由管理员启用/禁用。在禁用登录功能时,测试此按钮呈现的最佳方法是什么? (页面应该渲染得很好,但按钮不应该在那里。)

我似乎无法找到expect find失败的方法。我接近这个错误吗?

2 个答案:

答案 0 :(得分:2)

好吧,如果您的按钮有classid,那么您可以检查该网页是否不包含classid

expect(page).not_to have_selector "#botton_id" or ".button_class"

或者如果您的按钮名称是唯一的,您可以检查页面上是否显示该按钮:

expect(page).not_to have_content('Button Name')

答案 1 :(得分:0)

如果您通过执行

检查按钮是否存在
expect(page).to have_button('log in')

然后你可以做任何一个

expect(page).not_to have_button('log in')
expect(page).to have_no_button('log in')

确保'登录'按钮不存在 - 可以使用has_link,have_field,have_selector等进行类似操作。如果您不使用RSpec,那么就可以使用

page.assert_no_selector(:button, 'log in')

assert page.has_no_button?('log in')

会做你想做的事