【问题标题】:Selenium IDE: How to detect menu item that has a dynamic IDSelenium IDE:如何检测具有动态 ID 的菜单项
【发布时间】:2014-04-04 15:53:11
【问题描述】:

我正在与 Selenium IDE 一起使用 Firefox 执行一些测试用例记录和自动化。在我当前的测试用例中,我需要点击一个特定的菜单项。此菜单项的 id 是动态生成的,因此我无法可靠地使用它来识别菜单项。

这是我正在使用的 HTML 代码的摘录(尽量保持简短,因为它相当大):

<div class="mmenu-column last-child">
    <ul>
        <li id="liemx1271284633044.5005" class="submenu" menuuid="emx1271284633044.5005">
        <ul>
            <li id="liemx573969930099.0066" class="link" menuuid="emx573969930099.0066">
            <li id="liemx72897755668.1767" class="link" menuuid="emx72897755668.1767">
            <li id="liemx1355170643142.7795" class="link" menuuid="emx1355170643142.7795">
                <span class="icon">
                <span>Create Drawing Print...</span>
            </li>
            <li id="liemx1032692905053.1085" class="link" menuuid="emx1032692905053.1085">
        </ul>
        <li id="liemx625746376608.6172" class="submenu" menuuid="emx625746376608.6172">
        <ul>
        <li id="liemx696193179020.1482" class="submenu" menuuid="emx696193179020.1482">
        <ul>
    </ul>
</div>`

我正在尝试获取“创建绘图打印...”元素。我使用了 Firebug 并获得了以下 XPath:

html/body/div[20]/div/div/div/div/div[2]/ul/ul[1]/li[3]/span[2]

它可以工作,但它高度依赖于浏览器的宽度和高度(改变宽度或高度会导致菜单折叠,从而改变其组成菜单项的位置)。我需要帮助才能找到一种获得特定菜单项元素(XPath 或其他)以用于我的 Selenium 测试用例的好方法。

谢谢!

【问题讨论】:

    标签: html firefox xpath selenium firebug


    【解决方案1】:

    我会尝试这样的 XPath 表达式:

    //span[text() = 'Create Drawing Print...']
    

    【讨论】:

    • 是的,这正是我想要的!非常感谢你! :)
    【解决方案2】:

    试试这个 CSS 选择器

    driver.findElement(By.cssSelector("li[id*='liemx'] > span.icon + span")).任何操作。

    请让我知道上面的 CSS 是否有效。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-09-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多