【问题标题】:how to test using ui selectmenu (jQuery) and selenium如何使用 ui selectmenu (jQuery) 和 selenium 进行测试
【发布时间】:2011-06-02 20:00:56
【问题描述】:

我正在尝试使用 Firefox 的 selenium IDE 插件(版本 3.6)“记录”功能测试。我正在使用 jQuery 插件 ui selectmenu(我认为它的版本为 1.8)。我试图“记录”下拉/选择组件中元素的选择。此下拉列表是一个 ui 选择增强组件。因此,实际的选择元素被隐藏了,你最终选择了跨度元素和其他东西。这是 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)。这个值对于每个页面加载都是不同的,因此我看不出如何自动化它!?

我怎样才能获得可预测的结果并对此进行测试?或者有其他方法吗?

谢谢!

【问题讨论】:

    标签: jquery-ui selenium


    【解决方案1】:

    使用 Selenium 自动化 jQuery 选择菜单小部件很痛苦。一个简单的记录回放几乎是行不通的。尝试以下步骤来自动选择 -

    1. 输入您需要选择的项目。

    2. 点击 Backspace 以便选择框可以“搜索”该项目。

    3. 模拟搜索项的向下箭头键。

    4. 从下拉列表中选择第一项。

    这里是这些步骤的源代码(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\"]");
    

    【讨论】:

    • 谢谢!实际上,就我而言,第一步似乎就足够了。
    【解决方案2】:

    如果您不关心在运行 jQuery UI 控件的情况下截屏,我还发现这很有效。

    var jse = (IJavaScriptExecutor)theDriver;
    jse.ExecuteScript("try { $(yourSelector).selectmenu('destroy'); } catch (ex) { }");
    

    这有点乱,但如果你在需要处理通过文本选择下拉选项之前调用它,它就可以了。

    【讨论】:

      猜你喜欢
      • 2022-01-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-11-24
      • 1970-01-01
      • 2023-04-10
      相关资源
      最近更新 更多