博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
使用xpath的轴(Axis)进行元素定位
阅读量:5224 次
发布时间:2019-06-14

本文共 1632 字,大约阅读时间需要 5 分钟。

使用Xpath轴方式可依据在文档数中的元素的相对位置来进行定位,先找到一个相对好定位的元素,在根据与它相对位置来定位其他元素,可以解决一些元素难以定位的问题。今天学习了,写下笔记加深下印象

如家HTML页面:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<
html
>
<
head
>
<
meta
http-equiv="Content-Type" content="text/html; charset=UTF-8">
<
title
>在此处插入标题</
title
>
</
head
>
<
body
>
    
<
div
id="div1">
        
<
input
alt="div1-input1" id="iv1-input1" value="" /> <
a
            
href="http://www.baidu.com">test</
a
> <
img
alt="div1-img1" src="">
        
<
input
type="button" id="div1-button1" name="div1-button" />
    
</
div
>
    
<
div
id="div2">
        
<
input
alt="div2-input2" id="div2-input2" value="" /> <
a
            
href="http://www.sogou.com">test</
a
> <
img
alt="div2-img2" src="">
    
</
div
>
 
</
body
>
</
html
>

 画出树状图如下所示:

 

Xpath轴关键字 轴的定义说明 定位表达式实例 表达式解释
parent 选取当前节点的父节点 //img[@alt='div2-img2']/parent::div 查找到alt属性为div2-img2的img元素,并基于图片找到其上一级的div元素
child 选取当前节点的子节点 //div[@id='div1']/child::img 查找id为div1的div标签,基于当前div查找标签为img的子节点
ancestor 选取当前节点的所有上层节点 //img[@alt='div2-img2']/ancestor::div 查找alt属性为div2-img2的图片,基于当前图片找到其上级的div页面元素
descendant 选取当前节点所有下层节点 //div[@id='div2']/descendant::img 查找id属性为div2的div元素,在查找其下级所有节点中的img元素
following 选取当前节点之后显示的所有节点 //div[@id='div1']/following::img 查找到ID属性为div1的div元素,并基于div的位置找到它后面节点中的img元素
following-sibling 选取当前节点所有的平级节点 //img[@alt='div1-img1']/following-sibling::input 查找到alt属性为div1-img1的img页面元素,并基于img的位置找到后续节点中的input元素
preceding 选取当前节点前面所有的节点 //img[@alt='div2-img2']/preceding::div 查找到alt属性为div2-img2的图片页面元素,并基于图片的位置找到它前面节点中的div元素
preceding-sibling 选取当前节点前面所有平级的节点 //img[@alt='div2-img2']/preceding-sibling::a[1] 查找到alt属性值为div2-img2的图片元素,基于图片位置找到它前面同级节点的第二个链接页面元素

 

下面是例子:

转载于:https://www.cnblogs.com/yanzi-meng/p/8871089.html

你可能感兴趣的文章
在Js中得到元素的子元素集合注意事项
查看>>
Spring MVC之DispatcherServlet初始化详解
查看>>
多线程篇-GCD-基本概念使用
查看>>
生成唯一的随机数
查看>>
尼玛某前辈把ant 工程 改成android studio工程然后上传了 对我来说 尼玛这玩意就和屎一样...
查看>>
SSM整合(精简版)
查看>>
各种xml文件约束,Eclipse用
查看>>
泰勒展开,傅里叶变换,拉普拉斯变换和Z变换的物理意义
查看>>
Java Concurrentmodificationexception异常原因和解决方法
查看>>
Python 面向对象(其四)
查看>>
客户端访问浏览器的流程
查看>>
Linux——ls
查看>>
操作系统(八) 死锁
查看>>
Java Serializable Objects(序列化)
查看>>
Javascript Tip(!!)
查看>>
delphi 取硬盘号
查看>>
手机网页支付
查看>>
hdu_5862_Counting Intersections(扫描线)
查看>>
1442: Neo 的简单字符串(字符串)
查看>>
241. Different Ways to Add Parentheses
查看>>