禁用与Capybara的复选框

时间:2018-01-09 05:38:16

标签: rspec capybara

如何与Capybara核实复选框已被禁用?

我尝试过几个选项,但似乎没什么用。最后的尝试是

expect(page).to have_field("input[type='checkbox'][value='agreement']", disabled: true)

一如既往,谢谢。

1 个答案:

答案 0 :(得分:2)

根据记录 - http://www.rubydoc.info/gems/capybara/Capybara/Node/Matchers#has_field%3F-instance_method - have_field匹配器获取要检查的字段的标签,名称或ID ,它不需要CSS选择器。因此,您需要将期望元素的名称,ID或关联标签文本传递给匹配器。对你在选择器中检查的所有其他内容执行此操作就像是。

expect(page).to have_field('id_of_checkbox', type: 'checkbox', with: 'agreement', disabled: true)

如果您正在使用最近的Capybara,如果其他选项限制为唯一元素,您也可以跳过ID /名称/标签文本。

expect(page).to have_field(type: 'checkbox', with: 'agreement', disabled: true

如果你想用CSS选择器做这个,那么你可以使用:disabled CSS3伪选择器和have_css匹配器

expect(page).to have_css("input[type='checkbox'][value='agreement']:disabled")