watir脚本中select_list的奇怪行为

时间:2012-04-24 06:00:42

标签: watir

这个问题与watir中的select_list有关。

我们有一个表现奇怪的网络应用程序。

有一个四页的表单允许用户在网站上注册,在表单的一个页面中有一个select_list,用户必须选择其中一个值列表。

值列表是城市列表。

选择列表的HTML代码就像这样

<select id="roleDetailsForm:city" name="roleDetailsForm:city">
<option value="">---Select---</option>
<option value="ABG">ABINGDON, QL</option>
</select>

我写的用于选择值列表之一的watir代码是

@browser.select_list(:name => "roleDetailsForm:city").set "ADELAIDE, SA"

问题是

开发人员日志说,select_list正在向服务器发送文本而不是值,这会使请求失败。

因此,不是将ADL作为选择到服务器的值,“ADELAIDE,SA”将作为所选值。

但是,只有在运行脚本时才会发生这种情况。

当用户手动选择select_list中的相同文本并单击“提交”时,它会发送“ADL”作为正确的值

目前,开发人员一直坚持认为应用程序行为异常是脚本所致。

但是,我无法弄清楚为什么会这样?

急切地想知道是否有其他人遇到过此类问题,以及这是否真的是由于脚本造成的。

除了上面的watir代码,我还尝试了

@browser.select_list(:name => "roleDetailsForm:city").set  (@browser.select_list(:name => "roleDetailsForm:city").options[10])

2 个答案:

答案 0 :(得分:3)

尝试使用

@browser.select_list(:name => "roleDetailsForm:city").select("ADELAIDE, SA")

我认为set只是原始Watir中select的别名,但我不确定了。

值得一试。

答案 1 :(得分:0)

你可以尝试:

@browser.select_list(:name => "roleDetailsForm:city").select_value('ADL')

当您从选择列表中选择某些内容时,是否存在可填充的隐藏字段(并且隐藏字段是在服务器上检查的内容?可能使用Firebug或类似内容来检查当您运行时是否有任何事件从列表中手动选择。