我有一个复选框列表,使用
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