从Excel中select单选button与ruby

我想selectExcel电子表格中的单选button进行数据驱动testing。

我已经尝试了以下内容:

radio=worksheet.cells(rows,"A").value browser.radio(:name => 'name').set radio 

我也尝试select作为一个string,但有错误:

 radio=worksheet.cells(rows,"A").value string_from_excel = "set" browser.send string_from_excel, radio 

单选button的代码是:

 <input id="radio" type="radio" onclick="setradio(0)" value="0" name="radio"> 

谢谢您的帮助

首先让我们试着让你的代码更容易阅读。 注意评论和其他答案中的所有问题? 目前还不清楚从电子表格中检索什么内容,并且包含数据“无线电”的variables的命名只是在一段代码(和相关的html)中提供了该术语的另一个实例。 把它radio_idradio_value或者radio_name ,这样就可以清楚地知道应该从电子表格中检索出什么东西,以及那个variables包含的内容。 从现在起4个月,这对你自己也会更有意义。

其次,仔细评估如何正确识别你需要的物品。 您的示例HTML只显示一个单一的无线电控制,但通常这些控制集合在一起,并且大多数情况下NAME用于识别通用集合中的无线电控制, 请参阅本页上的示例 。 因此,使用name属性通常是识别单选button的一种可怕的方式。 价值,或embedded的文本通常是一个更好的方式来获得“正确的”无线电控制。

第三,watir单选button对象的.set方法不接受参数,它仅仅确保指定的特定无线电控制处于'set'状态。 .set的补充是.clear (更多信息请参阅Watir RDOC )

此外,您的控件在HTML中定义了一个事件处理程序。 当控件收到一个onclick事件时,这是执行一个脚本。 所以在设置它(或者可能不是设置它)以便页面正常工作之后,您可能需要触发onclick事件,以便调用正确的客户端代码。

考虑到这一点,我会尝试看起来像这样的代码

 radio_value = worksheet.cells(rows,"A").value browser.radio(:value => radio_value).set browser.radio(:value => radio_value).fire_event('onclick') 

肥皂盒:
电台进来的另一个原因是你不能用鼠标“取消”一个单选button,除非在同一组中select另一个button。 你几乎从来没有看到一个单独的单选button站在一个网页。 如果需要可以select或取消select的单个事物,通常使用“checkbox”元素。 如果一个开发人员通过实现JavaScript代码来使单个广播作为一个“checkbox”,使其performance得像一个checkbox,他们需要(恕我直言)被取出并被解雇,取而代之的是知道如何使用CSS的开发人员而不是滥用穷人的无线电控制,并创build一个页面,如果有人禁用JavaScript,将无法正常工作。

首先,将名称从“名称”更改为“收音机”,然后使用设置

 browser.radio(:name => 'radio').set