页面元素定位 - XPath
1. XPath 简介
2. 选取节点
1. XPath 简介
什么是 XPath?
XPath 是一门在 XML 文档中查找信息的语言。
XPath 使用路径表达式来选取 XML 文档中的节点或者节点集,这些路径表达式和我们在常规的电脑文件系统中看到的表达式非常相似。
XPath 含有超过 100 个内建的函数。这些函数用于字符串值、数值、日期和时间比较、节点和 QName 处理、序列处理、逻辑值等等。
XPath 术语
在 XPath 中,有七种类型的节点:元素、属性、文本、命名空间、处理指令、注释以及文档(根)节点。
XML 文档是被作为节点树来对待的。
树的根被称为文档节点或者根节点。
2. 选取节点
2.1 选取节点表达式

示例:http://www.w3school.com.cn/example/xmle/books.xml


模糊选取:

2.2 XPath 运算符

2.3 XPath 常用函数
| 函数 | 返回值 |
| last() |
返回当前上下文中的最后一个节点的位置号数。 |
| position() | 返回当前节点的位置的数字,位于第几个。 |
2.4 亲属关系匹配
- parent::* 表示当前节点的父节点元素
- ancestor::* 表示当前节点的祖先节点元素
- child::* 表示当前节点的子元素
- descendant::* 表示当前节点的所有后代元素
- self::* 表示当前节点的自身元素
- ancestor-or-self::* 表示当前节点的及它的祖先节点元素
- descendant-or-self::* 表示当前节点的及它们的后代元素
- following-sibling::* 表示当前节点的后序所有兄弟节点元素
- preceding-sibling::* 表示当前节点的前面所有兄弟节点元素
- following::* 表示当前节点的后序所有元素
- preceding::* 表示当前节点的所有元素
2.5 *综合示例
1 # 使用唯一属性值
2 //book[@cover='paperback']
3
4 # 使用多个属性组合,构成唯一的属性组合
5 //book[@category='web' and @cover='paperback']
6
7 # 使用绝对路径
8 //bookstore/book[2]/title
9
10 # 使用标签的文字来精确定位
11 //*[.='Everyday Italian']
12 //*[text()='Everyday Italian']
13
14 # 使用部分文字
15 //title[contains(.,'Everyday')]
16 //title[contains(text(),'Everyday')]
17 //title[contains(text(),'Everyday')]/..
18
19 # 使用部分属性值
20 //book[contains(@category,'chi')]
21
22 # 使用通过文本值的大小比较来进行定位
23 //book[price<30]/title
24
25 # 使用函数
26 //book[position()>=3] # 定位第三、第四个节点
27 //book[last()] # 定位最后一个book节点
28 //book[last()-1] # 定位倒数第二个book节点
29
30 # 使用axis轴
31 # 1. 定位子节点
32 //book[2]/child::title # 定位到下一级的title节点
33 //book[2]/child::* # 定位到下一级的所有子节点
34 # 2. 定位父节点
35 //book[2]/title/..
36 //book[2]/title/parent::book
页面元素定位 - XPath的更多相关文章
- 页面元素定位 XPath 简介
页面元素定位 XPath 简介 本文所说的 Xpath 是用于 Selenium 自动化测试所使用到的,是针对XHTML网页而言的一种页面元素的定位表示法. XPath 背景 XPath即为XML路径 ...
- java selenium webdriver实战 页面元素定位
自动化测试实施过程中,测试程序中常用的页面操作有三个步骤 1.定位网页上的页面元素,并存储到一个变量中 2.对变量中存储的页面元素进行操作,单击,下拉或者输入文字等 3.设定页面元素的操作值,比如,选 ...
- selenium之元素定位-xpath
被测试网页的HTML代码 <html> <body> <div id="div1" style="text-align:center&quo ...
- 元素定位-XPATH定位方法总结
1.Xpath定位方法探讨 xpath是比较常用的一种定位元素的方式,因为它很方便,缺点是,消耗系统性能.如果Xpath使用的比较好,几乎可以定位到任何页面元素,而且受页面变化影响较小. 1.1.什么 ...
- Robot Framework 教程 (2) - 页面元素定位
上一篇文章中,简单模拟了一个baidu搜索并截图的过程,在搜索过程中,我们需要对搜索框.搜索按钮进行定位.本篇文章主要介绍一下具体的定位方法. 我们的脚本如下: *** Settings *** Li ...
- Python3.x:Selenium中的webdriver进行页面元素定位
Python3.x:Selenium中的webdriver进行页面元素定位 页面上的元素就像人一样,有各种属性,比如元素名字,元素id,元素属性(class属性,name属性)等等.webdriver ...
- java selenium webdriver第二讲 页面元素定位
自动化测试实施过程中,测试程序中常用的页面操作有三个步骤 1.定位网页上的页面元素,并存储到一个变量中 2.对变量中存储的页面元素进行操作,单击,下拉或者输入文字等 3.设定页面元素的操作值,比如,选 ...
- 5、通过Appium Desktop实现页面元素定位
之前我们已经安装了Appium Desktop,下面就让我们使用Appium Desktop实现页面元素定位 1.首先我们打开Appium Desktop,进入如下界面,点击Start Server ...
- 定位页面元素之xpath详解以及定位不到测试元素的常见问题
一.定位元素的方法 id:首选的识别属性,W3C标准推荐为页面每一个元素设置一个独一无二的ID属性, 如果没有且很难找到唯一属性,解决方法:(1)找开发把id或者name加上.如果不行,解决思路可以是 ...
随机推荐
- elasticsearch如何设计集群
本文为博客园作者所写: 一寸HUI,个人博客地址:https://www.cnblogs.com/zsql/ 在写本文时就在想,如果让你负责一个elasticsearch集群,从零开始,你会从哪些方面 ...
- MySQL注入 利用系统读、写文件
目录 能读写文件的前提 Windows下的设置 Linux下的设置 没有读写权限的尝试 有SQL注入点,确认是否有读写权限 read load_file() load data infile() wr ...
- 用于功率集成电路应用的600伏、10安、4H-SIC横向单沟道金属氧化物半导体场效应晶体管的演示和分析
用于功率集成电路应用的600伏.10安.4H-碳化硅横向单沟道金属氧化物半导体场效应晶体管的演示和分析 摘要: 本文报道了一个具有大电流处理能力(10 A)的600伏4H-碳化硅横向场效应晶体管的演示 ...
- AtCoder Beginner Contest 194
A I Scream int main() { IOS; int a, b; cin >> a >> b; if(a + b >= 15 && b > ...
- JavaScript offset、client、scroll家族
offsetParent <!DOCTYPE html> <html> <head> <meta charset="utf-8"> ...
- tomcat启动错误Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/ofuns]];
起初遇到这个问题的时候是在实训(开发环境选择的是IDEA)的时候,检查了半天未果,上网搜索之后,说的也是各式各样,最后发现问题出在web.xml上面 在配置 filter 的 url-pattern ...
- Linux Python2 升级到 Python3
国内企业服务器用 CentOS 系统的比较多,CentOS8 系统已经将系统默认 Python 版本调整为了 Python3,但是 CentOS7 的存量还是很大,毕竟对企业生产服务来说稳定大于一切, ...
- ajax函数
使用三个函数是按ajax请求的处理 1.$.ajax() jQuery中实现ajax的核心函数 2.$.post() 使用post方式做ajax请求 3.$.get 使用get方式做ajax请求 $. ...
- 如何提高Web应用系统的性能?
随着互联网信息技术的发展,人们逐渐开始习惯在网络上交友.购物.学习.娱乐.工作,甚至是找工作.因此市场对网站的响应速度也提出了新的要求,提高Web应用系统的性能成为急需解决的关键问题.本文将会给出一些 ...
- nodeJS详解2
Nodejs应用场景 创建应用服务 web开发 接口开发 客户端应用工具 gulp webpack vue脚手架 react脚手架 小程序 NodeJs基于 Commonjs模块化开发的规范,它定义 ...