LOGO OA教程 ERP教程 模切知识交流 PMS教程 CRM教程 开发文档 其他文档  
 
网站管理员

xpath元素定位常用的几种方法

freeflydom
2024年11月1日 9:32 本文热度 839

元素定位有8种方式,但是在工作中一般都用css、xpath定位。
id定位需要开发配合,而且项目迭代很快,大多都是用的框架,不会单独去定义id。
css定位语法比较简洁,运行速度稍快,但总体来讲,因为xpath的功能更多,更强大,而且xpath可以根据文字来定位,所以我们选择xpath。
虽然xpath定位速度慢,但是自动化测试很多时候都是在无人值守时间跑的,可以忽略时间的问题。

xpath是使用路径表达式来选取XML文档中的节点或节点集。下面重点学习下xpath的基础语法和xpath的一些函数

xpath基础语法#

  1. /:从根节点选取或取子节点根节点就是/,比如复制百度的用户名输入框的xpath完整路径
    /html/body/div[1]/div[1]/div[5]/div/div/form/span[1]/input
    这个路径就是依次往下的路径,/html是根节点下第一个标签,随后去找到html标签下的body,依次找,最后找到input标签。

  2. //: 模糊查找标签,也就是不考虑他们的位置,只要找到复合标签名称的标签就行比如//input就会找到当前页面上所有的input元素

一般定位元素,都是使用模糊查找,因为这样更加灵活。如果前端改了元素,使用xpath绝对路径定位的元素大概率会受到影响,而用模糊查找的xpath路径可能是不需要修改元素定位表达式的。

  1. .:选取当前节点

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

  3. //div[@class='s-p-top']: 选取所有标签名为div,属性class值为s-p-top的元素

  4. //span[text()='设置']:选取所有标签名为span,span标签的文字内容为’设置’的元素

  1. //div[@class='s-top-left-new s-isindex-wrap']/a[1]:选取第一个a

  2. //div[@class='s-top-left-new s-isindex-wrap']/a[last()]:选取最后一个a
    //div[@class='s-top-left-new s-isindex-wrap']/a[last()-1]:选取倒数第二个a

xpath之contains、starts-with#

  1. contains:有两种使用场景
    1)属性
    当class中含有值,如‘s_ipt’,就满足条件
    //span[contains(@class,'s_ipt')]

2)文字
当文字中含有值,如‘图片’,就满足条件
//span[contains(text(),'图片')]

  1. starts-with:匹配一个属性开始位置的关键字
    //span[starts-with(text(),'按')]

xpath轴之following-sibling#

定位同级元素的下一个元素
//div[@class='side-entry aging-entry']/following-sibling::div

以百度页面为例,需要定位二维码,可以先定位到辅助模式,辅助模式是一个div元素,跟它同级的div在它的下方,所以用following-sibling

xpath轴之preceding-sibling#

定位同级元素的上一个元素
//div[contains(@class,'qrcode-nologin')]/preceding-sibling::div

以百度页面为例,需要定位辅助模式,可以先定位到二维码,二维码是一个div元素,跟它同级的div在它的上方,所以用preceding-sibling::div

xpath轴之ancestor#

//div[contains(@class,'qrcode-nologin')]/ancestor::div[@id='s_side_wrapper']/div

以百度页面为例,需要定位辅助模式,可以先定位到二维码,随后向上找到s_side_wrapper这个div标签,再往下定位找到辅助模式

 

xpath定位基础总结#

  • //ul/*:ul的所有子元素

  • //input[2]:第2个input元素

  • //input[last()]:最后一个input元素

  • //div[@class='']: 有class属性的div元素

  • //span[text()='XX']: 文本是XX的span元素

  • //div[contains(@class,'')]:包含class属性的div元素

xpath轴定位表达式大全#

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

  • ancestor:祖先节点,包括父节点

  • parent:父节点

  • child:子节点

  • descendant:所有后代(儿子、孙子、曾孙子...)

  • preceding:当前元素节点标签之前的所有节点(HTML页面之前的)

  • preceding-sibling:当前元素节点标签之前的所有兄弟节点(同级)

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

  • following-sibling:当前元素节点标签之后的所有兄弟节点(同级)


作者:是小鱼呀 出处:https://www.cnblogs.com/sophia12138/p/17248267.html



该文章在 2024/11/1 9:32:44 编辑过
关键字查询
相关文章
正在查询...
点晴ERP是一款针对中小制造业的专业生产管理软件系统,系统成熟度和易用性得到了国内大量中小企业的青睐。
点晴PMS码头管理系统主要针对港口码头集装箱与散货日常运作、调度、堆场、车队、财务费用、相关报表等业务管理,结合码头的业务特点,围绕调度、堆场作业而开发的。集技术的先进性、管理的有效性于一体,是物流码头及其他港口类企业的高效ERP管理信息系统。
点晴WMS仓储管理系统提供了货物产品管理,销售管理,采购管理,仓储管理,仓库管理,保质期管理,货位管理,库位管理,生产管理,WMS管理系统,标签打印,条形码,二维码管理,批号管理软件。
点晴免费OA是一款软件和通用服务都免费,不限功能、不限时间、不限用户的免费OA协同办公管理系统。
Copyright 2010-2024 ClickSun All Rights Reserved