Checkbox 检查的使用情况?水豚

Checkbox 检查的使用情况?水豚,checkbox,capybara,Checkbox,Capybara,如何在Capybara的类:Capybara::Node::Element中使用实例方法checked?? 我没有得到任何关于它使用的正确文档! 我们可以按如下方式使用“选中”和“取消选中”: page.check('some_text') page.uncheck('some_text') 但是page.checked?('some_text')抛出错误。我要检查一下吗?方法本身来验证是否设置了复选框。如何实现这一点?选中的方法可用于Capybara::Node::元素page是一个Capy

如何在Capybara的
类:Capybara::Node::Element
中使用实例方法
checked?
? 我没有得到任何关于它使用的正确文档! 我们可以按如下方式使用“选中”和“取消选中”:

page.check('some_text')
page.uncheck('some_text')

但是
page.checked?('some_text')
抛出错误。我要检查一下吗?方法本身来验证是否设置了复选框。如何实现这一点?

选中的
方法可用于Capybara::Node::元素
page
是一个Capybara::Session对象,这就是为什么会出现未定义的方法错误

要使用
checked?
,您需要通过使用
find
find\u字段
等获取checkbox元素

我假设页面的HTML类似于:

<html>
  <body>
    <input id="box" type="checkbox">
    <label for="box">some_text</label>
  </body>
</html>

checked?
方法可用于finder返回的对象:

page.check('some_text')
p page.find_field('some_text').checked?
#=> true

page.uncheck('some_text')
p page.find_field('some_text').checked?
#=> false

完美的使用find_字段和标签文本,我可以得到复选框是否被选中:)
page.check('some_text')
p page.find_field('some_text').checked?
#=> true

page.uncheck('some_text')
p page.find_field('some_text').checked?
#=> false