ruby-on-rails – 如何轻松取消选中Capybara的所有复选框

我有一个复选框列表,使用 collection_check_boxes创建.

在功能/集成测试中测试时,使用Capybara,并希望通过取消选中它们来“规范化”页面,然后检查我想要检查的页面:

within_fieldset('Product') do
  # Reset all checkboxes for a level playingfield.
  # What to do?

  # Mark checkboxes for products enabled
  products.each do |product|
    check products
  end
end

这是一个所谓的PageObject,因此我想要一些通用:如果在实际测试中,我会知道哪些字段被检查并取消选中它们.但是这个更通用的助手没有这样的知识.

我尝试过沿着find(‘input [type = checkbox]’)的所有内容.所有{|复选框|取消选中(复选框)},这应该有效,但对于手头的任务来说似乎相当复杂,不是吗?

是不是有一些uncheck_all()?我错过了,在Capybara?在开始填充表格之前,将资本中的表格“重置”为空白状态是一种常见的模式吗?

解决方法

试试这个:

all('input[type=checkbox]').each do |checkbox|
 if checkbox.checked? then 
  checkbox.click
 end
end

相关文章

validates:conclusion,:presence=>true,:inclusion=>{...
一、redis集群搭建redis3.0以前,提供了Sentinel工具来监控各...
分享一下我老师大神的人工智能教程。零基础!通俗易懂!风趣...
上一篇博文 ruby传参之引用类型 里边定义了一个方法名 mo...
一编程与编程语言 什么是编程语言? 能够被计算机所识别的表...
Ruby类和对象Ruby是一种完美的面向对象编程语言。面向对象编...