水豚选择我跑水豚测试多个单选按钮
问题描述:
,我被困在下面的测试:水豚选择我跑水豚测试多个单选按钮
page.all("input").each do |s|
if s.value == "E"
choose(s)
end
end
click_button "Save answers"
end
我有超过500的单选按钮,每个被分配从A-E的值。我不断收到错误:
Unable to find radio button #<Capybara::Element tag="input" path="[path to element]">
(Capybara::ElementNotFound)
为什么找不到“input”标签?它应该已经工作了。我试过find
,但find
返回一个模棱两可的错误(500个匹配,这在技术上是我想要的)。
我想豚能够通过所有的输入按钮,并选择那些与E.
任何帮助的价值?
答
其实我已经找到了我的问题:
线choose(s)
是,是给我的问题就行了。 s
是一个单选按钮,并且水豚预期收音机的id而不是实际的单选按钮本身。
一旦我通过s[:id]
而不是s
,它的工作!
答
错误地使用了单选按钮。
单选按钮表示只有一个无线电有效。所以你只能选择一个,而不是几个值“E”
如果你需要多选择,你应该使用复选框。
答
你可以尝试:
all('input[value=E]').map(&:choose)
我不记得确切,如果不工作与点击试试:
all('input[value=E]').map(&:click)
如果不工作,要么与内选择双引号试试:
all('input[value="E"]').map(&:click)
它也应该与each
一起工作。
但请记住@Billy Chan说过的话。
+0
请参阅Billy Chan的评论 – iconoclast
我假设这些单选按钮位于不同的组中。因此,字段1有5个单选按钮,其值为A到E,字段2有5个单选按钮,字段3有5个单选按钮等等。想象一下有100个问题的多项选择题测试,每个问题有5个答案,标有A ,B,C,D或E. – iconoclast
不会得到问题,是性能问题? – juanpastas
@iconoclast,也许你是对的,但我真的不能从这个问题得到答案。 –