1

这个问题是关于 watir 中的 select_list 的。

我们有一个行为异常的 Web 应用程序。

有一个四页表单,允许用户在网站上注册,并且在表单的其中一个页面中有一个 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])
4

2 回答 2

3

尝试使用

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

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

值得一试。

于 2012-04-24T11:01:12.483 回答
0

你可以试试:

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

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

于 2012-04-24T13:49:17.377 回答