1

我正在与 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 测试用例中使用的好方法。

谢谢!

4

2 回答 2

0

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

//span[text() = 'Create Drawing Print...']
于 2013-04-15T21:00:11.793 回答
0

试试这个 CSS 选择器

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

请让我知道上面的 CSS 是否正常工作。

于 2014-04-04T07:53:11.967 回答