由于我的无知,我正在处理并无法解决的问题是,我在浏览器上有一个页面,该浏览器具有不同的教育要求,每个都有四个单选按钮。我希望能够为每个教育要求选择一个单选按钮。
我的代码是这样的:
radios = browser.radios
radios.each do |radio|
radio.input(:value => "very").set
end
然而,这继续给我一条错误消息:“#Watir :: Input:0x103a5d508”的未定义方法'set'
我为select_lists做了类似的事情,在那里我将页面上所有select_lists的选项更改为第二个选项:
lists = browser.select_lists
lists.each do |list|
list.option(:index, 1).select
end
对于我的单选按钮代码,我尝试使用radio.option,但它给了我一个类似的错误:“NoMethodError:#Watir :: Option:0x103a466a0的未定义方法`set'”
答案 0 :(得分:2)
问题
代码
radios = browser.radios
radios.each do |radio|
radio.input(:value => "very").set
end
说明对于页面上的每个单选按钮,将第一个输入元素设置为值“very”。这表明你正在寻找像:
这样的HTML<radio>
<input value="very" />
</radio>
这可能不是html的样子。
<强>解决方案强>
我认为你真正想要设置的html就像:
<input type="radio" value="very" />
要设置每个单选按钮的值为“非常”,代码应为:
# Get a collection of all radios with value "very"
radios = browser.radios(:value => "very")
# Iterate through each radio button in the collection and set it
radios.each do |radio|
radio.set
end
这可以缩短为:
browser.radios(:value => "very").each(&:set)