51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 3072|回复: 5
打印 上一主题 下一主题

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

[复制链接]
  • TA的每日心情
    慵懒
    2016-12-7 15:45
  • 签到天数: 2 天

    连续签到: 2 天

    [LV.1]测试小兵

    跳转到指定楼层
    1#
    发表于 2016-12-1 18:57:36 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
    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或者其他方法定位呢
    分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    收藏收藏
    回复

    使用道具 举报

  • TA的每日心情
    慵懒
    2017-11-7 16:44
  • 签到天数: 290 天

    连续签到: 1 天

    [LV.8]测试军长

    2#
    发表于 2016-12-2 08:50:57 | 只看该作者
    可以通过xpath定位的,aria-owns不是不一样吗? 可以简化的,前提是aria-owns的值是固定不变和唯一的

    评分

    参与人数 1测试积点 +10 收起 理由
    lsekfe + 10 积极回复获得测试积点10

    查看全部评分

    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    慵懒
    2016-12-7 15:45
  • 签到天数: 2 天

    连续签到: 2 天

    [LV.1]测试小兵

    4#
     楼主| 发表于 2016-12-2 09:45:42 | 只看该作者
    若尘_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来定位
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    慵懒
    2017-11-7 16:44
  • 签到天数: 290 天

    连续签到: 1 天

    [LV.8]测试军长

    5#
    发表于 2016-12-2 10:09:44 | 只看该作者
    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();
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    慵懒
    2016-12-7 15:45
  • 签到天数: 2 天

    连续签到: 2 天

    [LV.1]测试小兵

    6#
     楼主| 发表于 2016-12-2 10:26:54 | 只看该作者
    若尘_51 发表于 2016-12-2 10:09
    没有使用过css。你问问别的大神~~
    其实这没有必要,纠结长度吧~~

    嗯嗯。刚开始接触selenium,就来多问问了
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-11-17 06:34 , Processed in 0.069312 second(s), 25 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表