selenium——xpath元素定位

  学习xpath元素定位的笔记

套用的公式://标签(也可以用*代替)[@属性="属性值"]

1、根据元素自身特征进行定位

    1)id定位——如://form[@id="J_searchForm"]

    2)class定位——如://form[@class="search-form clearfix"]  或者  //*[@ class="search-form clearfix"]    # 没有用标签,用*代替

                                     (注意:class有多个值时,值中的空格必须保留)

    3)其他属性——如://a[@data-log_code="bpm=28.265.3682762.1&cdm=0.0.0.0"]

    4)多个属性组合定位:

       //标签(也可以用*代替)[@属性1="属性值1"][@属性2="属性值2"]

           ——如://form[@id="J_searchForm"][@action="//search.mi.com/search"]

      //标签(也可以用*代替)[@属性1="属性值1" and @属性2="属性值2"]

          ——如://form[@id="J_searchForm" and @action="//search.mi.com/search"]

    5)属性值部分比配://*[contains(@属性,"部分属性值")]

          ——如://*[contains(@class,"search-form")]

2、根据元素层级关系定位

    1)后代关系(有跨代):祖先//后代 

            ——如://ul[@id="J_categoryList"]//li  定位到后代的所有li元素

            ——如://ul[@id="J_categoryList"]//li[@class="category-item"]  定位到后代li中的属性是class="category-item"的元素

    2)父子关系(直接上下级关系)

          父元素/子元素们

            ——如://ul[@id="J_categoryList"]/li  定位到下级所有的li元素

         父元素/子元素[n]

            ——如://ul[@id="J_categoryList"]/li[2]    定位到第2个子元素li  , 下标是从1开始的

         父元素/子元素[last()-2]

            ——如://ul[@id="J_categoryList"]/li[last()-2]    定位到倒数第3个弟弟,last()定位到倒数第1,通常用在元素个数是变动的

            (注意:后代关系是 ”// “,父子关系是”/“)

     3) 同级关系:

         A: 哥哥定位弟弟:

             哥哥/following-sibling::弟弟们 ——如://*[@id="J_navCategory"]/following-sibling::li 定位到所有的弟弟们

             哥哥/following-sibling::弟弟[n] ——如://*[@id="J_navCategory"]/following-sibling::li[2]  定位到第2个弟弟, n是从1开始

             哥哥/following-sibling::弟弟[last()-n] ——如://*[@id="J_navCategory"]/following-sibling::li[last()-2] 

                                                                                          定位到倒数第3个弟弟,last()定位到倒数第1,通常用在元素个数是变动的

         B: 弟弟定位哥哥:

             弟弟//preceding-sibling::哥哥们——如://*[@data-index="4"]/preceding-sibling::li  定位到上面所有的哥哥们

             弟弟//preceding-sibling::哥哥[n]——如://*[@data-index="4"]/preceding-sibling::li[1] 定位到最近的第1个哥哥,n是从1开始

             弟弟//preceding-sibling::哥哥[last()-n]——如: //*[@data-index="4"]/preceding-sibling::li[last()-1]

                                                                                  定位到倒数第2远的哥哥,last()是定位到最远的哥哥,n是从1开始

  • 1
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值