我正在进行Capybara测试,我坚持以下测试:
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"标签?它应该've worked. I'已尝试 find
,但 find
返回一个模棱两可的错误(500匹配,这在技术上是我想要的) .
我希望capybara能够通过所有输入按钮并选择值为E的那些按钮 .
有帮助吗?
3 回答
我实际上发现了我的问题:
第
choose(s)
行是给我问题的那一行 .s
是一个单选按钮,而Capybara期望收音机的ID而不是实际的单选按钮本身 .一旦我通过
s[:id]
而不是s
,它就有效了!你错误地使用了单选按钮 .
单选按钮表示只有一个无线电有效 . 所以你只能选择一个,而不是几个值为“E”的
如果需要多选,则应使用多重复选框 .
你可以尝试:
我不记得确切,如果这不起作用尝试点击:
如果这不起作用,请尝试使用选择器内的双引号:
它也应该与
each
一起使用 .但请记住@Billy Chan所说的话 .