的Watir。选择多个单选按钮选项

时间:2013-11-15 19:36:19

标签: ruby watir watir-webdriver ruby-1.9.3

由于我的无知,我正在处理并无法解决的问题是,我在浏览器上有一个页面,该浏览器具有不同的教育要求,每个都有四个单选按钮。我希望能够为每个教育要求选择一个单选按钮。

我的代码是这样的:

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'”

1 个答案:

答案 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)