说我的应用程序中有一个“登录”按钮,可以由管理员启用/禁用。在禁用登录功能时,测试此按钮未呈现的最佳方法是什么? (页面应该渲染得很好,但按钮不应该在那里。)
我似乎无法找到expect
find
失败的方法。我接近这个错误吗?
答案 0 :(得分:2)
好吧,如果您的按钮有class
或id
,那么您可以检查该网页是否不包含class
或id
:
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')
会做你想做的事