加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-17 03:56:19 所属栏目:百科 来源:网络整理
导读:我有一个复选框列表,使用 collection_check_boxes 创建. 在功能/集成测试中测试时,使用Capybara,并希望通过取消选中它们来“规范化”页面,然后检查我想要检查的页面: within_fieldset('Product') do # Reset all checkboxes for a level playingfield. # Wh
我有一个复选框列表,使用 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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读