属性描述

  XPath 语法支持节点描述,节点描述为一个逻辑真假表达式,任何真假判断表达式都可在节点后方括号里表示,这条件必须在XPath处理这个节点前先被满足。在某一步骤可有多少个描述并没有限制。

  对于页面元素, 可用XPath 表示为HTML标签的属性值来定位,以百度首页为例,查看如下几个XPath的表示法:

XPath1: //*[@id="su"]
XPath2: //input[@value="百度一下"]
XPath3: //input[@class="bg s_btn"]

XPath1、2、3 实际上表示的均为“百度一下”这个按钮元素,只是选取的属性值的不同而已。XPath1表示找id为”su”的元素;XPath2表示找value为“百度一下”的input标签元素;而XPath3则表示找class即样式名为”bg s_btn”的input标签元素。

  这就解释了开头我所说的XPath同取id、CSS、Name等方式的做法,即可理解为取HTML标签的属性罢了,而且该方式更具灵活性,可做多种及多层的匹配,如单取CSS为”test”,则会取出所有CSS为”test”的元素,而若写成XPath方式,如 //input[@class="test"] ,则取出的是CSS为”test”且仅为input的元素;若可知上层id,如 //div[@id="test"]//*[@class="test"] ,则定位的是id为”test”div下所有class为”test”的元素。甚至有更灵活的模糊匹配方式,如若XPath为 //a[contains(text(),'新')] ,表示为所有包含”新”这一文字的a元素,如“新闻”a标签就会被定位出。

  备注:1.开头是两个斜线(//)代表相对路径;2.使用了通配符 * 表示匹配任意

  有时要定位多个元素,即需选取一组满足要求的元素组,XPath使用上也是相当方便的,示例如下:

 XPath4: //a[@class="mnav"]
 XPath5: //a[@class="mnav"][2]

层级定位

最新文章

  1. Mysql学习笔记(四)聊聊数据库索引
  2. 2 Orchard汉化资源包的使用
  3. Android配置----Eclipse+BlueStacks调试Android应用
  4. 匹配url - 正则表达式
  5. WeiFenLuo.winFormsUI.Docking.dll的使用(停靠效果)
  6. appium安装 For windows
  7. Velocity脚本新手教程
  8. 第七章——DMVs和DMFs(2)——用DMV和DMF监控索引性能
  9. 渲染优化 之fixed与返回顶部 以及开启GPU Hack
  10. 搭建网络yum源
  11. CSAcademy Beta Round #5 Long Journey
  12. JAVA提高十九:WeakHashMap&EnumMap&LinkedHashMap&LinkedHashSet深入分析
  13. dijk
  14. C控制台实现模拟平抛运动算法
  15. 实现自己的MVC AJAX框架计划
  16. java-框架-索引
  17. 浅谈React数据流管理
  18. python静态方法和类方法
  19. Dijkstra模板
  20. phpstorm2018激活方法

热门文章

  1. spring中的XML Catalog配置
  2. SpringBoot修改默认端口号 及 上下文
  3. kubernetes集群部署高可用Postgresql的Stolon方案
  4. Linux 笔记 - 第十八章 Linux 集群之(三)Keepalived+LVS 高可用负载均衡集群
  5. 让API实现版本管理的实践
  6. Chrome 查看产品原型图
  7. BOM之window核心模块
  8. moment实现计算两个时间的差值
  9. SpringBoot之整合Mybatis(增,改,删)
  10. Sentinel Core流程分析