我正在尝试使用Firefox的selenium IDE插件(版本3.6)“记录”功能测试。我使用jQuery插件ui selectmenu(我认为它的版本1.8)。我试图“记录”下拉/选择组件中元素的选择。此下拉列表是一个ui选择增强组件。因此,隐藏了实际的select元素,最终选择了span元素和其他元素。这是selenium记录的内容:
<tr>
<td>click</td>
<td>//a[@id='type-button']/span[2]</td>
<td></td>
</tr>
<tr>
<td>click</td>
<td>ui-selectmenu-item-416</td>
<td></td>
</tr>
问题是第二部分使用数字后缀,一种计数器(416)。每个页面加载的值都不同,因此我看不出如何自动化它!?
如何获得可预测的结果并对其进行测试?还是有其他方法可以做到这一点?
谢谢!
答案 0 :(得分:2)
jQuery selectmenu小部件很难通过Selenium实现自动化。简单的录音回放几乎不会奏效。请尝试以下步骤自动选择 -
输入您需要选择的项目。
点击退格键,以便selectBox可以“搜索”该项目。
模拟搜索项目的向下箭头键。
从下拉列表中选择第一项。
以下是这些步骤的源代码(以Java格式)。您应该能够将这些适应IDE。
selenium.type("selectMenu_descriptor", "item_to_be_selected");
selenium.typeKeys("selectMenu_descriptor", "\b");
selenium.keyDown("selectMenu_descriptor", "\\40");
selenium.click("css=a.ui-corner-all[tabindex=\"-1\"]");
答案 1 :(得分:0)
如果你不关心运行jQuery UI控件的截图,我也发现这是有效的。
var jse = (IJavaScriptExecutor)theDriver;
jse.ExecuteScript("try { $(yourSelector).selectmenu('destroy'); } catch (ex) { }");
它有点乱,但是如果你在需要处理按文本选择下拉选项之前调用它,它就可以解决问题。