(pythonweb自动化测试)(pythonweb自动化测试第十四节)

什么是xpath?

定义:XPath即为XML路径语言(XML Path Language),它是一种用来确定XML文档中某部分位置的语言。

绝对路径:从根目录开始,root

相对路径:在一个路径下,另外的路径以这个路径对参照

绝对和相对都是可以找到你要的文件和html元素

一般不要用绝对路径,要用相对路径

因为使用绝对路径只要前端改动任一元素,自动化测试代码就要跟着一起改

绝对路径太长,不方便管理管理

如何获取html页面xpath路径?

例如在任一网页输入F12 右键html选择Xpath路径

填写xpath: f中,点击elememt选项,ctrl + f

(pythonweb自动化测试)(pythonweb自动化测试第十四节)

xpath

但是上图只能获取到绝对路径,在web自动化都是采用相对路径的

如果要找到头条首页的搜索框就要输入就可以使用

相对路径://input[@class="search-input"]

绝对路径://*[@id="root"]/div/div[2]/div[3]/div[1]/input

相比之下还是使用相对路径xpath比较好

相对路径的具体写法:

//标签名[@属性名="属性值"]

表达式

描述

nodename

选取此节点的所有子节点

/

从根节点选取,绝对路径

//

从匹配路径选取,相对路径

.

选取当前节点//标签名[@属性名="属性值"]/.(用处不大)

..

选取父节点//标签名[@属性名="属性值"]/..

@

选取属性

and

使用多个条件//标签名[@属性名="属性值" and @属性名="属性值"]

text()

contains()

索引

使用xpath查找元素原则:只寻找特征最明显的属性

组合条件:

id name class_name

例如头条号搜索框有 class 和placeholder属性,使用xpath 表达式:

//input[@class="search-input" and @placeholder="搜索站内资讯、视频或用户"]

以搜索框为例 父节点-子节点://div[@class="search-wrapper"]/input[@class="search-input"]

子-孙 节点://标签名[@属性名="属性值"]//标签名[@属性名="属性值"]

上节点:/..

//input[@class="search-input" and @placeholder="搜索站内资讯、视频或用户"]/..

(pythonweb自动化测试)(pythonweb自动化测试第十四节)

/..用法

(pythonweb自动化测试)(pythonweb自动化测试第十四节)

父-子节点

text 用法:

text格式://标签名[text()="文本"]

但是text用法缺点是当字符左右有空格时,就无法定位到文本元素。

text一般跟contains使用就可以避免问题:

格式:

//标签名[contains(text(),'文本内容')]或者//标签名[contains(@属性名,'属性值')

例如://a[contains(@属性名,"属性值")] tips:属性值不用全部写出来也可以

索引用法:

假设两个元素标签、属性、属性值是一样的,可以用索引

格式(//a[contains(@属性名,"属性值")])[1]或者(//标签名[@属性名="属性值"])[1]

tips:1.索引前面的搜索条件要加(),2、索引值是从[1]开始

轴运算:

以上的xpath 方法基本所有的元素都能找到,但是要写法显示更加明确,就需要用到轴运算

这边只大概提下web自动化最常用的三种

轴名称

结果

ancestor

祖先节点包括父亲(只能是一个线下来的,没有旁支。比如说九代单传)

following-sibling

当前元素节点标签之后的所有兄弟节点,弟弟妹妹

preceding-sibling

当前元素节点标签之间的所有兄弟节点,哥哥姐姐(sibling英文是兄弟)

轴:你想通过一个元素找到另一个元素

轴=称呼:关系

//a//ancestor::div[@id="anony-nav"]

//标签名//上级::标签名[@属性=“属性值”]

文字理解:我要寻找标签名为a 的上级 它是:: 标签名[@属性="属性值"]

css选择器:

什么是css选择器?

input#id

input.classhame

input[prop=value]

input.class chilld子孙。

input.class>儿子,直系

xpath和css 选择器各有什么优势

css写法更简洁

css速度更快

css不支持文本定位

xpath 功能更强

对于复杂定位反而更简洁

声明:我要去上班所有作品(图文、音视频)均由用户自行上传分享,仅供网友学习交流,版权归原作者分享python测试自动化所有,原文出处。若您的权利被侵害,请联系删除。

本文标题:(pythonweb自动化测试)(pythonweb自动化测试第十四节)
本文链接:https://www.51qsb.cn/article/m78zb.html

(0)
打赏微信扫一扫微信扫一扫QQ扫一扫QQ扫一扫
上一篇2022-12-21
下一篇2022-12-21

你可能还想知道

发表回复

登录后才能评论