关于xpath学习总结

1.Xpath的路径的表现形式

  1.1常用的路径表达方式是通过绝对路径或者相对路径+节点+运算符(通常一些boolean类型的表达式,一般都是节点的特定的标示)来定位的

eg //div[@class=’done’]

目前我们用到比较多的一些常用的表达式有(表格列出的是比较经常使用的)

经常使用的表达式或者运算符

 

/

从根节点选取

//

从匹配的当前选择文本中的节点

..

选取当前节点的父节点

@

选取属性

Text()

序曲文本内容

contains

选取符合contains里面的节点

And  or

选取符合and和or的节点

1.2比较复杂点的位置路径表示法

  一般路径的表达式是:轴名称::节点名称【谓语】

常见的轴名称有(表格列出的是比较经常使用的)

结果

ancestor

选取当前节点的所有父辈节点

child

选取当前节点的所有子节点

following

选取在当前节点的结束标签结束前的所有节点

preceding

选取当前节点的所有同级节点

self

选取当前节点

2.xpath使用总结

  2.1尽量使用比较常见的表达式而不使用位置路径

  2.2尽量使用相对路径

  2.3节点不容易定位可以通过元素的上下级,先找到容易定位的元素再根据层级关系定位到所需的节点.

       就像这次ivr tree里面的树结构的 可以先定位到入口节点//div[@class='tools-ivrEditor-column']/div[contains(@class,'tools-ivrEditor-treeNode')  and @data-key='$DataKey']/div

       再后面封装迭代的部分

  2.4尽量把范围写的大点,使xpath健壮性更强。

比如在定位一个done button时候//div[text(),’done’],div就是text所在的属性,其实可以使范围更大点 有时候这个done本身就是一个table 可以直接使用table这个属性

  2.5目前写的脚本定位来看text()contains, @使用的比较多//li[contains(@class,'tools-ivrEditor-menubar-matchedItem')]

  2.6有时候为了准备需要多个表达式同时一起用 比如//div[@class='tools-ivrEditor-menubar-matchedItem-name'and text()='IVR 1001']

  2.7在写的时候一般都以比较固定好找的属性来定位 比如id name class等

  2.8在xpath定位出来的节点有多个一般通过参数来确定具体定位是那个节点 这个也是目前在脚本中比较常见的,webdriver默认是定位到第一个的

 2.9  在脚本里定位组件的xpath范围也尽量大点

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值