1.XPATH与自动化之间的关系
1.XPATH是一门在XML文档中查找信息的语言。XPATH可用来在XML文档中对元素和属性进行遍历。
2.XPATH是用来选择“节点”的一种基于表达式的语言;
3.表达式的格式类似于文件系统,eg. C:useradmin;
4.XPATH最常用的场景之一就是在自动化中用来选择HTML DOM 节点;
5.Selenium原生支持XPATH,因此也是selenium自动化测试中作为选择web 元素的主要方法之一;
2.XPATH简介
XPATH 包含一个标准函数库:XPATH含有超过100个内建的函数。可以处理字符串值,数值,日期和时间比较,节点和QName处理,序列处理,逻辑值等等。
3.XPATH术语
有7种类型的节点(Node):元素、属性、文本、命名空间、处理指令、注释、文档节点(或称为根节点).XML文档是被作为节点树来对待的,树的根被称为文档节点或根节点。基本值(Atomic value)是无父或无子的节点。项目(Item)是基本值或者节点。
XPATH节点:
XPATH术语:
– Parent:父节点
– Child:子节点
– Sibling:同胞节点
– Ancestor:先辈节点
– Descendant:后代节点
XPATH术语:
4.XPATH语法
4-1.选取节点
4-2.谓语(Predicates)
谓语用来查找某个特定的节点或者包含某个指定的值的节点。
谓语被嵌在方括号中。
4-3.选取未知节点
4-4.选取若干路径
5.XPATH轴
5-1.位置路径表达式
5-2.步包括轴和节点测试
6.XPATH运算符
XPATH 表达式可返回节点集、字符串、逻辑值以及数字。
https://www.cnblogs.com/zhaozhan/archive/2009/09/10/1564332.html
http://www.zvon.org/xxl/XPathTutorial/General_chi/examples.html
选取当前节点之后的所有同级节点:Following-sibling::子节点标签名
选取当前节点的父节点:parent::子节点标签名
选取当前节点之前的所有同级节点:Preceding-sibling::子节点标签名
7.用Text构建有效的XPATH
语法如下://标签名[text()=’标签名对应的文本名称’]
比如://a[text()=’文本名称’],文本名称要完全匹配,包括空格。
8.用Contains关键字构建有效的XPATH
语法如下://标签名[contains(attribute,’属性的值’)]
比如://a[contains(text(),’忘记密码’)],其中忘记密码可以部分包含,不用完全匹配。
//input[contains(@class,’ipt’) and contains(@placeholder,’手机号’)],其中可以使用逻辑的方式去定位元素。
9.用startwith关键字构建有效的XPATH
语法如下://标签名[startwith(attribute,’属性的开始值开头’)]
比如://input[starts-with(@class,’xa-emaiOrphone’)]