如何检查复选框是否被选中 capybara Rspec

新手上路,请多包涵

查看

<div class="checkbox">
    <input id="yes_1212" class="check_uncheck" type="checkbox" value="true" name="yes" checked="checked">
    <label></label>
    </div>

取消勾选

 <div class="checkbox ">
    <input id="allow__100" class="check_uncheck" type="checkbox" value="false" name="Allow">
    <label></label>
    </div>

如何检查复选框是否被选中

原文由 jerrytom 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 406
2 个回答
<input id="allow__100" class="check_uncheck" type="checkbox" value="false" name="Allow">

对于输入类型复选框

 page.find(:css,
                      "input#allow__100", visible: false
                    ).should_not be_checked

原文由 jerrytom 发布,翻译遵循 CC BY-SA 3.0 许可协议

有多种方法取决于你想要做什么 - 如果你已经找到了元素并且只是想知道它是否被选中你可以做一些类似的事情

element = find('#yes_1212')
...
element.checked?

如果您试图断言该框在页面上并且已选中/未选中,您可以这样做

expect(page).to have_field('yes_1212', checked: true) # checked: false or unchecked: true for not checked

要么

expect(page).to have_checked_field('yes_1212')  # or have_unchecked_field

如果您想要一个布尔值响应并且还没有对该元素的引用

page.has_field?('allow__100', unchecked: true)
page.has_unchecked_field?('allow_100')

在所有情况下,如果输入元素实际上由于样式原因不可见,您可以传递 visible: false

原文由 Thomas Walpole 发布,翻译遵循 CC BY-SA 3.0 许可协议

推荐问题