Python UI自动化-Selenium【元素定位Xpath】

Xpath定位方式

  1. 绝对定位(绝对路径)
    以/开头:父元素/子元素[位置] 顺序和位置
    存在的问题:严格按照顺序、位置

  2. **相对定位
    根据元素的特征来查找元素,不用考虑位置/顺序

元素定位方法

  1. 查看元素有什么特征 f12
  2. 编写相对定位表达式,边写边确定是不是能唯一找到
    • //标签名[@属性名=值]

    • 多个属性组合用: and or
      //标签名[@属性名=值 and @属性名=值]

    • 文本内容(要根据业务来判断,文本内容是否会变动,如果是变动的,那就不能用文本定位)
      //标签名[text()=文本内容 ]

    • 模糊匹配 - contains(text()/@属性,“值”)
      //标签名[contains(text()/@属性,“值”)]

    • 任意元素匹配到括号里的内容!
      //[text()=“值”]
      //span[@
      =“值”]
      //[@=“值”]

    • 层级定位 - 通过祖先找你—逐级定位
      元素之间的关系:通过你自己本身的特征无法唯一定位到你自己
      按照html的元素顺序,从上到下的逐级定位://祖先元素1//祖先元素2…//要定位的元素

    • 层级定位 - 通过兄弟元素找你、通过子元素找祖先元素—轴定位
      元素之间的关系
      语法:已知元素(//…//…)/轴名称::标签名称[@属性名称=“属性值” and @属性名称=“属性值”]//…

  举例:
  //div[@id="u1"]//a[@name="tj_login"]
  搜索范围从整个html缩小到div[@id="u1"]这个元素: //div[@id="u1"]
  然后从div[@id="u1"]这个元素的后代中去查找//a[@name="tj_login"]

轴名称的4种

  parent:父元素
  ancestor:祖先元素
  preceding-sibling:亲生的姐姐/哥哥元素(同一个父元素,但是在html当中排在你要找的元素前面)
  following-sibling:亲生的妹妹/弟弟元素(同一个父元素,但是在html当中排在你要找的元素后面)
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值