使用 Capybara,我一生都无法在表单上选择一个复选框。
在我的请求规范中,我尝试过:
check("First Name")
page.check("First Name")
page.check("pickem_option_ids_10")
find(:css, "#pickem_option_ids_11[value='11']").set(true)
find(:css, "#pickem_option_ids_11").set(true)
来自我的表单的片段:
<div class="control-group check_boxes optional">
<label class="check_boxes optional control-label">Options:</label>
<div class="controls">
<label class="checkbox">
<input class="check_boxes optional" id="pickem_option_ids_10" name="pickem[option_ids][]" type="checkbox" value="10" />First Name
</label>
<label class="checkbox">
<input class="check_boxes optional" id="pickem_option_ids_11" name="pickem[option_ids][]" type="checkbox" value="11" />Middle Name
</label>
</div>
</div>
我从 this SO thread 得到了一些 find() 的想法。
我在其他规范中取得了一些成功,其中我有一个带有 Active 标签的复选框,我只说
check("Active")
。
最佳答案
今天遇到了同样的问题,我环顾四周,这似乎有效:
find(:xpath, "//input[@value='10']").set(true)
当然,您可以用您想要的任何内容替换 '10' - 只需检查您的 HTML 并使用您的值。
希望有帮助。
关于ruby-on-rails - 使用 Capybara 检查复选框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11549345/