Selenium IDE:如何检测具有动态ID的菜单项

时间:2013-04-15 20:05:13

标签: html firefox xpath selenium firebug

我正在与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]

它有效,但它高度依赖于浏览器的宽度和高度(更改宽度或高度会导致菜单折叠,从而更改其组合菜单项的位置)。我需要帮助找到一个很好的方法来获取在我的Selenium测试用例中使用的特定菜单项元素(XPath或其他)。

谢谢!

2 个答案:

答案 0 :(得分:0)

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

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

答案 1 :(得分:0)

尝试使用此CSS选择器

driver.findElement(By.cssSelector(“li [id * ='liemx']&gt; span.icon + span”))。任何操作。

请告诉我上述CSS是否有效。