这个问题与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])
答案 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或类似内容来检查当您运行时是否有任何事件从列表中手动选择。