0


【Selenium+python自动化】xpath元素定位方法

前言


查找元素是selenium页面自动化的基础,只有找到元素后才能做相关操作。在一个页面中有很多不同的策略可以定位一个元素。需要选择合适的可维护的方法去查找元素,目前实践后发现xpath定位应用较广,现在的流行自动化神器都离不开xpath元素定位这一技能的学习!下文基本涵盖在实际场景实践中频繁用到的方法:

一、什么是xpath


  • xml路径语言,通过元素的路径来查找到这个元素的,相当于通过定位一个对象的坐标,来找到这个对象
  • 相对定位,以//开头,不依赖页面的顺序和位置,只看整个页面上有没有这个元素
  • 不能唯一定位时,可通过逻辑运算符and/or来组合元素多个属性来定位

二、常用表达式


xpath定位表达式中的常用表达式含义

表达式

描述

/

从根节点开始选取,绝对定位

//

从符合条件元素开始不考虑位置,相对定位

.

选取当前节点

..

选取当前节点的父节点

@

选取属性

三、xpath属性定位


语法://标签名[@属性名=属性值]

  1. 同一属性名较多的可以通过标签筛选定位更精准,若不想定制可以用*表任意标签
  2. 可以通过元素的id、name、class常用属性定位,也可以使用其他属性定位到如autocomplete等

例: //a[@id='s-top-loginbtn'] 可定位百度页登录


四、xpath层级定位


如果不能直接定位到目标元素,可以采用"层级定位"方式来定位。

例: .. 选取当前节点的父节点

五、xpath轴定位


语法:轴名称:: 节点名称前后的定位与之前一致,用/隔开即可

比如常用的如下:

轴名称

选择节点

parent

父节点

child

子节点

following

当前元素节点标签之后的所有节点

following-sibling

当前元素节点标签之后的所有兄弟节点(同级)

preceding

当前元素节点标签之前的所有节点

preceding-sibling

当前元素节点标签之前的所有兄弟节点(同级)

例://span[contains(@title,'%s')]//following-sibling::a[contains(text(), '删除')]

六、xpath索引定位


语法://tag[n], tag是需要选择的标签名,n是该元素在同级元素中的索引位置从1开始

当一个元素它的兄弟元素跟它标签一样,无法通过层级定位到时用此方法

索引定位是基于元素在同级元素中的顺序,主要用于处理列表、表格或其他重复元素时使用,如果结构发生变化索引也会变化

例: //select[@id=''nr"]/option[2] 定位到第二个元素

七、xpath逻辑运算


支持多个属性逻辑运算,如与and、或or、非not

例://*[@class='component-title' and text()='列表'] 表示只有class属性是component-title且包含文本内容是列表的元素才能定位到

八、验证xpath定位


F12或F12+Fn键打开浏览器元素页签,复制xpath进去后查看个数若为0则未定位到

标签: selenium

本文转载自: https://blog.csdn.net/LuckLina/article/details/137599255
版权归原作者 LuckLina 所有, 如有侵权,请联系我们删除。

“【Selenium+python自动化】xpath元素定位方法”的评论:

还没有评论