如果进行
自动化测试,尤其是
web的自动化,用到Xpath的时候应该比较频繁,我也简单的看了下,做些记录:
<?xml version = "1.0" encoding = "utf-8"?>
<bookstore>
<book>
<title lang = "eng">Leaning XML</title>
<price type = "$"> 20.22 </price>
</book>
<book>
<title lang= "china">吴永达PMP</title>
<price type = "¥"> 19.22 </price>
</book>
</bookstore>
1、Xpath的语法
a、 nodeName 选取此节点的所有子节点
b、 / 从根节点选取
c、 // 从匹配的节点开始选择节点,而不考虑位置
d、 . 从当前节点
e、 .. 从当前节点的父节点
f、 @ 节点的属性
2、Xpath 数组和函数使用
a、/bookstore/book[1] 选取属于bookstore子元素的第一个book元素
b、/bookstore/book[last()] 选取属于bookstore子元素的最后book元素
c、/bookstore/book[lase() - 1] 选取属于bookstore子元素倒数第二个book元素
d、/bookstore/book[last() <3] 选取属于bookstore子元素的前两个book元素
e、//title[@lang] 选取属性为lang的title元素
f、//title[@lang=’eng‘] 选取属性lang的值为eng的title的元素
g、/bookstore/book[price>20] 选取bookstore子元素的book元素,且其中的price元素的值大于20
h、/bookstore/book[price>20]/title 选取bookstore子元素的book元素的title元素,且其中的price的值大于20
3、Xpath 通配符
a 、× 匹配任何元素节点
b 、@× 匹配任何属性
c 、node() 匹配任何节点
4、函数的使用 count(),name(),contains(),starts_with()
a、//*[count(price)=2] 选取包含2个price子元素的元素
b、//*[name()=title] 选取元素名为title的元素『的同于//title』
c、//*[contains(name(),'b')] 选取包含'b'的所有元素
d、//*[starts_with(name(),'t')] 选取首字母为't'的所有元素