Ruby on rails 水豚。如何检查循环中生成的复选框

Ruby on rails 水豚。如何检查循环中生成的复选框,ruby-on-rails,checkbox,rspec,capybara,Ruby On Rails,Checkbox,Rspec,Capybara,我想用水豚来测试我的应用程序。用户检查一些表,点击确认,应用程序显示消息。但我无法访问循环中生成的任何复选框 index.html.erb 当我运行此测试时,它显示: 失败/错误:检查(‘申请表15’) Capybara::ElementNotFound: 找不到“申请表15”复选框。存在id为-15的表。你们能帮我解决这个问题吗?你们可以尝试使用下面提到的方法之一选择复选框: within(#tables) check('Apply for table 15') end 或 或 或 希望

我想用水豚来测试我的应用程序。用户检查一些表,点击确认,应用程序显示消息。但我无法访问循环中生成的任何复选框

index.html.erb

当我运行此测试时,它显示: 失败/错误:检查(‘申请表15’) Capybara::ElementNotFound:
找不到“申请表15”复选框。存在id为-15的表。你们能帮我解决这个问题吗?

你们可以尝试使用下面提到的方法之一选择复选框:

within(#tables)
  check('Apply for table 15')
end


希望这有帮助:)

您可以尝试使用以下方法之一选择复选框:

within(#tables)
  check('Apply for table 15')
end


希望这对您有所帮助:)

我怀疑您的“申请表格”字符串中缺少空格字符,因此您没有将其标记为“申请表格15”,而是将其标记为“申请表格15”。谢谢您的回答,但我在发布此问题时不小心遗漏了空格。问题仍然存在。当我在循环外部添加复选框标记时,水豚可以找到它,但在循环内部-无法发布生成的实际html而不是ERBA-如果你隐藏复选框,只是设置标签样式以显示选中/未选中状态?Tom Walpole,不,我不怀疑你在“Apply for table”字符串中缺少空格字符,所以,你没有给它贴上“申请表15”的标签,而是给它贴上了“申请表15”的标签。谢谢你的回答,但是我在发布这个问题时不小心漏掉了一个空格。问题仍然存在。当我在循环外部添加复选框标记时,水豚可以找到它,但在循环内部-无法发布生成的实际html而不是ERBA。如果你隐藏复选框,只是对标签进行样式化以显示选中/未选中状态?Tom Walpole,不,我不知道这一切对我都不起作用。我在Windows上工作,无法安装capybara webkit,所以,我想,这就是我面临这个问题的原因,所有这些都不适合我。我在Windows上工作,无法安装capybara webkit,所以,我想,这就是我面临这个问题的原因
...
scenario 'should submit for tables' do
   visit root_path
   fill_in 'Email', with: 'test@gmail.com'
   check('Apply for table 15')
   click_on('Submit for Tables')
   expect(page).to have_content('Tables were successfully assigned')
end
within(#tables)
  check('Apply for table 15')
end
within(.transitions-enabled)
  check('Apply for table 15')
end
find(:css, "#table-check-box-15").set(true)
page.execute_script("$('#table-check-box-15').prop('checked', true);")