UI自动化-selenium之xpath

xpath

窍门:先分析html结构再去定位,观察层级关系和可用元素。

  • 定义:
    XPath是XML的路径语言,通俗一点讲就是通过元素的路径来查找到这个标签元素。

插件的安装:ChroPath

链接:https://pan.baidu.com/s/1KW1ifWxGxkrSIfJcEa154A 密码:e6a4

  • 代表安装成功

在这里插入图片描述
在这里插入图片描述

  • //*定位到所有元素

  • 1、Xpath支持ID、Class、Name定位功能

通过id定位
//*[@id='i1']
通过name定位
//*[@name='name']
通过clas定位
//*[@class='class_name']

  • 返回是列表的,支持根据下标,但还是不是唯一

在这里插入图片描述

  • 当标签页重复时,Xpath提供了层级过滤
  • xpath递进:如果找不到唯一元素,先找父级元素
支持通过 / 进行层级递进,找到符合层级关系的标签
 
//form/div/input[@placeholder="用户名"]
 
当层级都重复时,可以通过单个层级的属性进行定位
 
//form/div[@class='login-user']/input
  • 2、如果没有ID、Class、Name,xpath还支持属性定位
@ 代表以属性定位,后面可以接标签中任意属性
 
//*[@other='attribute']
  • 3、当标签的属性重复时,Xpath提供了通过标签来进行过滤
* 换位任意标签名,则可根据标签进行筛选
 
//input[@placeholder='用户名']
  • 4、一个元素它的兄弟元素跟它的标签一样,这时候无法通过层级定位到。因为都是一个父亲生的,多胞胎兄弟。Xpath提供了索引过滤
通过索引,在List中定位属性,与python的索引有些差别,Xpath从1开始
 
//select[@name='city'][1]/option[1]
  • 5、如果还重复,Xpath提供的终极神器,逻辑运算定位。and 或 or
通过and来缩小过滤的范围,只有条件都符合时才能定位到
 
//select[@name='city' and @size='4' and @multiple="multiple"]
 
or就相反了,只要这些筛选中,其中一个出现那么久匹配到了
 
//select[@name='city' or @size='4']

ps:火狐浏览器支持,右键复制xpath路径,但是不推荐,因为复制的是绝对路径,一但需求变更,改变了HTML的层级关系,就会定位不到。所以建议相对路径

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值