Ruby on rails 用水豚检查复选框

Ruby on rails 用水豚检查复选框,ruby-on-rails,rspec,capybara,Ruby On Rails,Rspec,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="co

使用水豚,我一生都无法在表格上选择复选框

在我的请求规范中,我尝试过:

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>
我从中得到了一些发现的想法


我在其他规范中也取得了一些成功,其中我有一个带有活动标签的复选框,我只说checkActive。

水豚找不到复选框的名字,因为你的html是错误的。您的html应该如下所示

<label class="checkbox" for="pickem_option_ids_10">First Name</label>
 <input class="check_boxes optional" id="pickem_option_ids_10" name="pickem[option_ids][]" type="checkbox" value="10" />
那么,选择第一个名字就行了


否则,您可以找到dickem\u option\u ids\u 10。check

今天也遇到了同样的问题,我环顾四周,这似乎有效:

find(:xpath, "//input[@value='10']").set(true)
当然,你可以用你想要的任何东西替换“10”——只需检查你的HTML并使用你的值


希望有帮助

说得好。我正在使用simple_表单中的关联帮助器,这就是标记的来源。不幸的是,我不知道如何实现你的建议。然而,现在您提到它,生成的标记有点奇怪。对不起,从来没有使用过简单的表单。findpickem\u option\u ids\u 10.检查有效吗?失败/错误:findpickem\u option\u ids\u 10.检查水豚::ElementNotFound:找不到css pickem\u option\u ids\u 10好吧,你可能还有其他页面。可以是Rails错误页面。我放入了一个保存和打开页面,当它打开时,复选框甚至不可见。这肯定是个问题。这个解决方案对我有效,或者更准确地说是:一个方便的提示是使用ChromeWebInspector查找您的元素,然后右键单击并选择Copy XPath
find(:xpath, "//input[@value='10']").set(true)