如何与Capybara核实复选框已被禁用?
我尝试过几个选项,但似乎没什么用。最后的尝试是
expect(page).to have_field("input[type='checkbox'][value='agreement']", disabled: true)
一如既往,谢谢。
答案 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")