关于Xpath定位方法知道这些基本够用
2024-09-05 18:11:40
一、写在前面
之前写过一些关于元素定位的文章,但是感觉都是很碎片,现在想做个整合,便有了这篇文章。
二、xpath的定位方法
关于xpath
定位方法,网上写的已经很成熟了,现已百度首页为例,如下图:
再结合我之前所写整理如下。
1、通过绝对路径方式定位
/html/body/div[1]/div[2]/div[5]/div[1]/div/form/span[1]/input
2、通过相对路径方式定位
//input
3、通过元素索引定位
//input[4]
4、通过属性定位
使用xpath属性定位(结合第2、第3中方法可以使用)
//input[@id='kw']
//input[@type='name' and @name='kw']
5、通过部分属性值匹配
//input[starts-with(@id,'k')]
//input[ends-with(@id,'w')]
xpath中的ends-with无效,原因如下:
ends-with是xpath2.0的语法,可能你的浏览器还只支持1.0的语法
//input[contains(@id,'w')]
6、通过文本定位
//a[text()='直播']
三、关于xpath函数使用举例说明
1、contains():
//div[contains(@id,'in')] ,表示选择id中包含有’in’的div节点
2、text()
//a[text()='baidu'] ,用text()函数来匹配节点
3、last()
book[last()] ,取xpath最后一个book元素
book[last()-1] ,取xpath最后第二个book元素
4、starts-with()
//div[starts-with(@id,'in')] ,表示选择以’in’开头的id属性的div节点
5、not()
not()
函数,表示否定
//input[@name=‘identity’ and not(contains(@class,‘a’))] ,表示匹配出name为identity并且class的值中不包含a的input节点。
特别注意
not()
函数通常与返回值为true or false
的函数组合起来用contains(),starts-with()
等,但有一种特别情况请注意一下。
我们要匹配出input节点含有id属性的,写法如下://input[@id]
,如果我们要匹配出input节点不含用id属性的,则为://input[not(@id)]
。
最新文章
- GPUImage实现摄像头暂停
- python 正则使用笔记
- Leetcode 之Convert Sorted List to Binary Search Tree(55)
- poj1125最短路
- 谈谈php中上传文件的处理
- System,Integer,Calendar,Random和容器
- FastScroll(2)不分组的listview 打开fastscroll的分组提示功能
- hdu 3498 whosyourdaddy 重复覆盖
- poj2492 A Bug's Life【基础种类并查集】
- ASP.NET CORE部署到Linux
- 华为路由器AR1220F-S的端口映射NAT配置(拨号光纤上网)
- ------- 软件调试——挫败 QQ.exe 的内核模式保护机制 -------
- AD 10使用技巧---新学习
- c++后台开发路线
- 从MATLAB到FPGA 视频和图像处理——讲座学习小结(视频地址https://ww2.mathworks.cn/videos/from-matlab-to-fpga-video-and-image-processing-102492.html)
- 51nod 1295 XOR key 可持久化01字典树
- mysql 表注释的添加、查看 、修改
- fatal error C1083: 无法打开编译器生成的文件:“../../build/vs71/release/lib_json\json_value.asm”: No such file or directory
- linux command>;file 2>;&;1 &; 命令详解
- zabbix触发器表达式详解