51Testing软件测试论坛

标题: 页面中多个一级菜单li的class相同,用Selenium怎么定位到具体的二级菜单 [打印本页]

作者: t2107080    时间: 2016-12-1 18:57
标题: 页面中多个一级菜单li的class相同,用Selenium怎么定位到具体的二级菜单
  1. <li class="ant-menu-submenu-inline ant-menu-submenu">

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

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

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

  8.      react-empty: 156

  9.     -->

  10. </li>
复制代码

C:\Users\Administrator\Desktop
代码类似于上面,就是li,div都相同的情况下,应该怎么定位到后面的div,用selenium IDE录制后,用的是xpath方法(driver.findElement(By.xpath("//div[@id='content']/div/div/div/div[2]/ul/li[4]/div/span/span")).click();),这样看着太长, 能否用cssSelector或者其他方法定位呢
作者: 若尘_51    时间: 2016-12-2 08:50
可以通过xpath定位的,aria-owns不是不一样吗? 可以简化的,前提是aria-owns的值是固定不变和唯一的
作者: t2107080    时间: 2016-12-2 09:03
求助
作者: t2107080    时间: 2016-12-2 09:45
若尘_51 发表于 2016-12-2 08:50
可以通过xpath定位的,aria-owns不是不一样吗? 可以简化的,前提是aria-owns的值是固定不变和唯一的

aria-owns  我试过通过div.class的值[aria-owns]来定位,后来报错NoSuchElementException,我发现每次都是会变化的,因为使用xpath的话,代码是driver.findElement(By.xpath("//div[@id='content']/div/div/div/div[2]/ul/li[4]/div/span/span")).click();太长了,想知道能否用cssseletor来定位
作者: 若尘_51    时间: 2016-12-2 10:09
t2107080 发表于 2016-12-2 09:45
aria-owns  我试过通过div.class的值[aria-owns]来定位,后来报错NoSuchElementException,我发现每次都 ...

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

还可以写成:
xpath_value = "//div[@id='content']/div/div/div/div[2]/ul/li[4]/div/span/span"
driver.findElement(By.xpath(xpath_value)).click();
作者: t2107080    时间: 2016-12-2 10:26
若尘_51 发表于 2016-12-2 10:09
没有使用过css。你问问别的大神~~
其实这没有必要,纠结长度吧~~

嗯嗯。刚开始接触selenium,就来多问问了




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2