水豚:找到与第一个相同的第二个复选框

Capybara: Finding a second checkbox which is identical to the first

我正在为视图文件编写测试。我有一个带有两个复选框的页面,允许用户 Select 两个不同列表中的所有项目。但是,复选框是部分的一部分,因此是相同的。我设法使用以下方法检查了第一个:

first(:checkbox, "Select all").click

但是我无法检查第二个。我尝试用 lastsecond 替换 first 但无济于事。 我想我可能需要使用 find 选择器,但我也在努力解决这个问题。非常感谢任何帮助。 谢谢

更新

看来这实际上是另一个问题。我 认为 当 Capybara "checked" 时,任何影响其他复选框的复选框都无法按预期工作。因此,下面的当前答案在他们确实选中复选框的意义上起作用,但不会发生预期的行为,即链接到它们的复选框不会得到 "checked"。不过我可能是错的。

试试这个

# find the second checkbox
find('input[type="checkbox"]:nth-child(2)').click

您可以使用查找所有

all('input[type="checkbox"]', :text => 'Select all')[1].click

哎呀。原来这是一个 JS 问题,而不是 Capybara macthers!感谢您的帮助!