Xpath定位

<?xml version="1.0" encoding="UTF-8"?>
 
<bookstore>
 
<book>
  <title lang="eng">Harry Potter</title>
  <price>29.99</price>
</book>
 
 
</bookstore>

  <bookstore>:文档节点

  <title>:元素节点

  lang="eng":属性节点

一.节点间的关系

1.父节点

  每个元素以及属性都有一个父节点。上面XML中,book是title和price的父节点。

2.子节点

  一个元素节点可以有多个子节点。上面的XML中,title和price是book的子节点。

3.同胞节点

  拥有相同父节点的节点。上面的XML中,title和price是同胞节点。

4.先辈节点

  父节点及以上祖先节点。

5.后代节点

  子节点及以下后代节点。

二.Xpath定位语法

1.绝对路径定位元素

/html/boby/div/input[@value='xx']

"/"表示根节点。页面元素发生变动时,绝对路径定位可能会发生变化。

2.相对路径定位元素

//input[@value='xx']

"//"表示从匹配选择的当前节点开始选择文档中的节点。只要input标签以及value值不变,仍可定位到元素。

3.索引号定位元素

//input[2]

上述表示定位页面中的第二个input标签。

例:

定位最后一个div下的超链接

//div[last()]/a

4.页面元素属性值定位元素

 //img[@alt='div1']

上述表示定位img中值为div1属性alt的元素。前提条件确保属性值唯一。

5.模糊属性值定位元素

//img[starts-with(@alt,'div')]  查找属性alt的属性值以div1关键字开始的元素

//img[contains(@alt,'img')]  查找属性alt的属性值包含img关键字的元素

6.页面元素的文本定位元素

//a[text()='xx'] 精确匹配  

//a[contains(text().'xx')] 模糊匹配

 

posted @ 2020-06-28 12:55  hyeonsori  阅读(125)  评论(0)    收藏  举报