Selenium IDE:处理Ajax控件 - 选择下拉值

时间:2012-07-24 11:03:46

标签: ajax selenium

我正在尝试使用Selenium IDE选择下拉值。比如说有三个下拉列表Country,State&市。从国家/地区下拉菜单中选择国家/地区后,将填充状态下拉列表(之前为空)以及相应的值,以此类推。 当我记录时,一些硬编码值会记录特定于第一个下拉列表中选择的值。 我在第一个下拉列表中选择了第一个值。然后selenium为ajax操作记录以下内容: 点击| CSS =选项[值= “28”]

这里28是存储在db中的所选值的id(下拉列表中的第一项)。我不希望在我的脚本中使用这个硬编码值,因为prod中的实际ID会有所不同。

我尝试使用waitForCondition但是无法在第二个下拉列表中填充下拉值。添加10秒的暂停也无济于事。

示例记录的代码在这里:

<tr>
<td>select</td>
<td>id=property1</td>
<td>index=1</td>
</tr>
<tr>
<td>click</td>
<td>css=option[value=&quot;28&quot;]</td>
<td></td>
</tr>
<tr>
<td>select</td>
<td>id=property2</td>
<td>index=1</td>
</tr>
<tr>
<td>click</td>
<td>css=option[value=&quot;12&quot;]</td>
<td></td>
</tr>
<tr>
<td>select</td>
<td>id=property3</td>
<td>index=1</td>
</tr>
<tr>
<td>click</td>
<td>css=option[value=&quot;14&quot;]</td>
<td></td>
</tr>
<tr>

我试过的waitForCondition就在这里 waitForCondition | var value = selenium.getText(“// input [@ id ='some_xyIDHidden']”); value ==“”| 10000

我可能在这里错过了一个基本步骤。需要帮助。

由于

2 个答案:

答案 0 :(得分:0)

尝试在每个元素上使用selenium.fireEvent("<locator>","blur")

答案 1 :(得分:0)

在这种情况下你必须将值存储在一个变量中,while下拉列表会出现然后你可以使用该值,为此你必须使用 storeEval 命令来存储值。变量