XPATH常用定位方法
评论
收藏

XPATH常用定位方法

经验分享
Crazy God
2024-03-09 10:49·浏览量:2685
Crazy God
发布于 2024-03-09 10:492685浏览

节点名称:

父节点(Parent)

元素div是元素a的父节点;第二个元素a也是元素img的父节点。

子节点(Children)

元素a是元素div的子节点;元素img是子节点。

兄弟/同胞节点(Sibling)

兄弟节点在HTML中的地位相等,它们有相同的父节点。如上面例子中,两个a元素互为兄弟节点。

先辈节点(Descendant)

对于img元素来说,它的父节点(第二个a元素),和它的父节点的父节点(元素div)统称为img的先辈节点。在一个HTML文件中,先辈节点一般不唯一,比如这里的例子中,元素img的先辈节点包含两个元素。

后代节点(Descendant)

对于img元素来说,它的子节点(第二个a元素),和它的子节点的子节点(元素img)统称为div的后代节点。

在使用Xpath中,搞清楚节点间的关系是非常重要的。

XPath常用的定位方式:

1.元素属性,快速定位,唯一属性: //*[@id="images"]

2.层级与属性结合,解决没有属性问题://div[@id="images"]/a[1]

3.属性与逻辑结合,解决多个属性重名问题:

//*[@id="su" and @class="bg s_btn" ]

注意,表达式里的下标是从1开始的。
绝对定位以/开头,依赖页面的元素的顺序和位置,相对定位以//开头,不依赖页面元素顺序和位置,根据条件进行匹配,优先使用相对定位。

学习XPath本质就是掌握各种表达式的技巧,除了上述说到方法外,还有一些特别的定位方式:

4.查找id属性的值包含"kw"的元素: //*[contains(@id,'kw')]

5.查找⽂本⾥包含"新闻"的元素//*[contains(text(),'新闻')]

6.查找class属性中开始位置包含's_form_wrapper'关键字的元素:

//*[starts-with(@class,'s_form_wrapper')]

7.使⽤多个相对路径去定位⼀个元素⽤//分开:

//div[@class=‘formgroup’]//input[@id=‘user-message’]

8.轴定位:

轴定位,使用::表示

查找id="head"元素后⾯标签名为input的第一个元素

//*[@id="head"]//following::input[1]

收藏13
全部评论1
最新
发布评论
评论