页面元素定位 - 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加上.如果不行,解决思路可以是 ...
随机推荐
- 第42天学习打卡(Class类 Class类的常用方法 内存分析 类的加载过程 类加载器 反射操作泛型 反射操作注解)
Class类 对象照镜子后得到的信息:某个类的属性.方法和构造器.某个类到底实现了哪些接口.对于每个类而言,JRE都为其保留一个不变的Class类型的对象.一个Class对象包含了特定某个结构(cla ...
- 华硕主板开机无法进入BIOS
先说下本人情况,自己组装的台式机,华硕TUF B550M-Plus (wifi)的主板,CPU是锐龙 4650G(带核显),其他配件不涉及问题就不提了. 原来用独显的时候,没啥问题,开机有品牌logo ...
- 利用Visual Studio调试JavaScript脚本
方法1: 方法2: 打开IE,按F12调试. 方法3: JS断电点debugger代替
- Spring Boot 老启动失败,这次再也不怕了!
Spring Boot 项目是不是经常失败,显示一大堆的错误信息,如端口重复绑定时会打印以下异常: *************************** APPLICATION FAILED TO ...
- Pyqt5——带图标的表格(Model/View)
需求:表格中第一列内容为学生学号,为了突出学号的表示,在第一列的学号旁增加学号图标. 实现:(1)使用Qt的model-view模式生成表格视图. (2)重写代理(QAbstractItemDeleg ...
- CCF(元素选择器:50分):字符串+模拟
元素选择器 201809-3 这里我只考虑了没有后代选择器的情况 #include<iostream> #include<cstdio> #include<cstring ...
- js 浮点运算bug
js几个浮点运算的bug,比如6.9-1.1,7*0.8,2.1/0.3,2.2+2.1 实现思路 通过将浮点数放大倍数到整型(最后再除以相应倍数),再进行运算操作,这样就能得到正确的结果了 比如:1 ...
- 【知识点】 C++寄存器优化
作者:李春港 出处:https://www.cnblogs.com/lcgbk/p/14502076.html 目录 一.前言 二.代码实例 三.volatile作用 一.前言 在c++中什么情况下, ...
- 16. 使用vue3结构及配置管理
主要内容: vue-cli2和3的区别 创建vue-cli3脚手架 vue-cli3项目的目录结构 vue-cli2和vue-cli3中 main.js文件的区别 vue-cli3的配置文件管理 一. ...
- Python之内存泄漏和内存溢出
预习知识:python之MRO和垃圾回收机制 一.内存泄漏 像Java程序一样,虽然Python本身也有垃圾回收的功能,但是同样也会产生内存泄漏的问题.对于一个用 python 实现的,长期运行的后台 ...