一、写在前面

之前写过一些关于元素定位的文章,但是感觉都是很碎片,现在想做个整合,便有了这篇文章。

二、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)]

最新文章

  1. GPUImage实现摄像头暂停
  2. python 正则使用笔记
  3. Leetcode 之Convert Sorted List to Binary Search Tree(55)
  4. poj1125最短路
  5. 谈谈php中上传文件的处理
  6. System,Integer,Calendar,Random和容器
  7. FastScroll(2)不分组的listview 打开fastscroll的分组提示功能
  8. hdu 3498 whosyourdaddy 重复覆盖
  9. poj2492 A Bug's Life【基础种类并查集】
  10. ASP.NET CORE部署到Linux
  11. 华为路由器AR1220F-S的端口映射NAT配置(拨号光纤上网)
  12. ------- 软件调试——挫败 QQ.exe 的内核模式保护机制 -------
  13. AD 10使用技巧---新学习
  14. c++后台开发路线
  15. 从MATLAB到FPGA 视频和图像处理——讲座学习小结(视频地址https://ww2.mathworks.cn/videos/from-matlab-to-fpga-video-and-image-processing-102492.html)
  16. 51nod 1295 XOR key 可持久化01字典树
  17. mysql 表注释的添加、查看 、修改
  18. fatal error C1083: 无法打开编译器生成的文件:“../../build/vs71/release/lib_json\json_value.asm”: No such file or directory
  19. linux command>file 2>&1 & 命令详解
  20. zabbix触发器表达式详解

热门文章

  1. cuSPARSELt开发NVIDIA Ampere结构化稀疏性
  2. 开放神经网络交换(ONNX)工具
  3. mybatis自定义打印执行时间并格式化sql插件
  4. Linux之RPM包
  5. Mysql优化(出自官方文档) - 第一篇(SQL优化系列)
  6. hdu1233 最小生成树Prim算法和Kruskal算法
  7. python读取txt文件绘制散点图
  8. Unity 添加,修改默认创建脚本模板
  9. 46、django工程(view)
  10. JS 获取JSON数据的属性