我正在与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或其他)。
谢谢!
答案 0 :(得分:0)
我会尝试像这样的XPath表达式:
//span[text() = 'Create Drawing Print...']
答案 1 :(得分:0)
尝试使用此CSS选择器
driver.findElement(By.cssSelector(“li [id * ='liemx']&gt; span.icon + span”))。任何操作。
请告诉我上述CSS是否有效。