水豚选择我跑水豚测试多个单选按钮

问题描述:

,我被困在下面的测试:水豚选择我跑水豚测试多个单选按钮

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”

如果你需要多选择,你应该使用复选框。

+0

我假设这些单选按钮位于不同的组中。因此,字段1有5个单选按钮,其值为A到E,字段2有5个单选按钮,字段3有5个单选按钮等等。想象一下有100个问题的多项选择题测试,每个问题有5个答案,标有A ,B,C,D或E. – iconoclast

+0

不会得到问题,是性能问题? – juanpastas

+0

@iconoclast,也许你是对的,但我真的不能从这个问题得到答案。 –

你可以尝试:

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