t2107080 发表于 2016-12-1 18:57:36

页面中多个一级菜单li的class相同,用Selenium怎么定位到具体的二级菜单

<li class="ant-menu-submenu-inline ant-menu-submenu">

    <div class="ant-menu-submenu-title" aria-open="false" aria-owns="1480588680996_0" aria-haspopup="true" style="padding-left: 24px;"> … </div>
    <ul id="1480588680996_0" class="ant-menu ant-menu-inline ant-menu-sub ant-menu-hidden" role="menu" aria-activedescendant="" style=""> … </ul>

</li>
<li class="ant-menu-submenu-inline ant-menu-submenu">

    <div class="ant-menu-submenu-title" aria-open="false" aria-owns="1480588680998_1" aria-haspopup="true" style="padding-left: 24px;"> … </div>
    <!--

   react-empty: 156

    -->

</li>
C:\Users\Administrator\Desktop
代码类似于上面,就是li,div都相同的情况下,应该怎么定位到后面的div,用selenium IDE录制后,用的是xpath方法(driver.findElement(By.xpath("//div[@id='content']/div/div/div/div/ul/li/div/span/span")).click();),这样看着太长, 能否用cssSelector或者其他方法定位呢

若尘_51 发表于 2016-12-2 08:50:57

可以通过xpath定位的,aria-owns不是不一样吗? 可以简化的,前提是aria-owns的值是固定不变和唯一的

t2107080 发表于 2016-12-2 09:03:34

求助

t2107080 发表于 2016-12-2 09:45:42

若尘_51 发表于 2016-12-2 08:50
可以通过xpath定位的,aria-owns不是不一样吗? 可以简化的,前提是aria-owns的值是固定不变和唯一的

aria-owns我试过通过div.class的值来定位,后来报错NoSuchElementException,我发现每次都是会变化的,因为使用xpath的话,代码是driver.findElement(By.xpath("//div[@id='content']/div/div/div/div/ul/li/div/span/span")).click();太长了,想知道能否用cssseletor来定位

若尘_51 发表于 2016-12-2 10:09:44

t2107080 发表于 2016-12-2 09:45
aria-owns我试过通过div.class的值来定位,后来报错NoSuchElementException,我发现每次都 ...

没有使用过css。你问问别的大神~~
其实这没有必要,纠结长度吧~~

还可以写成:
xpath_value = "//div[@id='content']/div/div/div/div/ul/li/div/span/span"
driver.findElement(By.xpath(xpath_value)).click();

t2107080 发表于 2016-12-2 10:26:54

若尘_51 发表于 2016-12-2 10:09
没有使用过css。你问问别的大神~~
其实这没有必要,纠结长度吧~~



嗯嗯。刚开始接触selenium,就来多问问了:lol
页: [1]
查看完整版本: 页面中多个一级菜单li的class相同,用Selenium怎么定位到具体的二级菜单