如何检查水豚的checkbox?
我正在使用Rspec和水豚。
我如何写一个步骤来检查一个checkbox
? 我试图check
值,但它无法find我的checkbox
。 我不知道该怎么做,因为我实际上有不同的ID的ID
这里是代码:
<input id="cityID" type="checkbox" style="text-align: center; opacity: 0;" value="61" name="cityID"> <input id="cityID" type="checkbox" style="text-align: center; opacity: 0;" value="62" name="cityID"> <input id="cityID" type="checkbox" style="text-align: center; opacity: 0;" value="63" name="cityID">
我发现以下工作对我来说:
# Check find(:css, "#cityID[value='62']").set(true) # Uncheck find(:css, "#cityID[value='62']").set(false)
最好不要使用相同的id创build多个元素,这样(不仅仅是这样),您可以轻松地选中/取消选中一个checkbox
check 'cityID' uncheck 'cityID'
如果不能避免具有相同id的多个元素,并且仍然需要检查具有特定值的checkbox,他可以这样做
find(:css, "#cityID[value='62']").set(true) find(:css, "#cityID[value='62']").set(false)
有关水豚input操作的更多信息可以在这里find
运行水豚testing时,你得到了page
对象。 这可以用来检查/取消选中任何checkbox。 正如@buruzaemon已经提到:
通过名称,ID或标签文本来查找和检查checkbox。
所以,让我们假设你有一个checkbox在你的HTML像:
<label> <input type="checkbox" value="myvalue" name="myname" id="myid"> MyLabel </label>
你可以检查这个:
page.check('myid') page.check('MyLabel') page.check('myname')
取消选中就是使用page.uncheck
方法。
首先,我认为你可能必须给你的表单元素赋予唯一的id
。
但是关于水豚和checkbox, Capybara :: Node :: Actions#check instance方法将允许您通过名称,标识或标签文本来查找和检查checkbox。
我知道这是一个比较老的问题,但是我一直在努力完成这一切,并且尝试了以上所有这些,终于为我效劳了:
find("input[type='checkbox'][value='#{cityID.id}']").set(true)
希望这对某人有帮助。 我正在使用水豚2.4.4。
你也可以使用:xpath而不是:css,如果你有一些问题find它。
find(:xpath,'//*[@id="example"]').set(true)
在Chrome浏览器(当然还有其他的浏览器)上,你可以“检查元素”,然后右键点击你感兴趣的元素,如果你不知道xpath是什么,那么就有'copy xpath'。
你也可以检查所有的checkbox没有被选中。
全部('input [type = checkbox]')。每个都做| checkbox | checkbox.should不be_checked结束
.set(true)对我不起作用,所以我不得不打电话.click:
find(...).click
check find(".whenever input")[:id]
我认为这将使水豚等待附加到该input的任何事件监听器,如果不等待,这有时是一个痛苦的屁股。如果该input没有ID,则select另一个属性(必须有一个)…