2017-01-14 46 views
3

CHECK如何检查复选框是否被选中与否水豚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> 

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

回答

0
<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 
2

有多种方法取决于你想要做什么 - 如果你已经找到了元素,只是想知道它是否被检查,你可以做一些事情,如

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

+0

我只想检查是否检查该字段 – jerrytom

+0

@jerrytom然后'检查?'或'has_field?'风格是你想要的 –

1

“期待”的语法:

expect(page.find("input#yes_1212")).to be_checked 

expect(page.find("input#yes_1212")).not_to be_checked 
相关问题