参考资料

  1. XPath 有七种类型的节点
  2. XPath 节点
  3. 正则表达式语法速查
  4. xpath多个相同元素怎么定位
  5. XPath 选取若干路径
  6. XPath 标准函数
  7. XPath 路径表达式
  8. XPath 轴(Axes)
  1. 标签定位

    • 语法: //标签名

    • 用法: 通过HTML标签名定位元素

    • 示例: //div 定位所有div元素

  2. 属性定位

    • 语法: //标签名[@属性名='属性值']

    • 用法: 通过元素的属性值定位

    • 示例: //input[@id='username'] 定位id为username的input元素

  3. 文本定位

    • 语法: //标签名[text()='文本内容']

    • 用法: 通过元素的文本内容定位

    • 示例: //a[text()='登录'] 定位文本为"登录"的a标签

  4. 包含定位

    • 语法: //标签名[contains(@属性名,'部分属性值')]//标签名[contains(text(),'部分文本')]

    • 用法: 定位属性或文本包含特定内容的元素

    • 示例: //div[contains(@class,'header')] 定位class包含"header"的div

  5. 层级定位

    • 语法: //父标签/子标签//父标签//子标签

    • 用法: 通过父子关系定位元素

    • 示例: //div/span 定位div下的直接子span

  6. 索引定位

    • 语法: (//标签名)[索引]

    • 用法: 定位多个相同元素中的第n个

    • 示例: (//div)[2] 定位第二个div元素

  7. 逻辑定位

    • 语法: //标签名[@属性1='值1' and @属性2='值2']

    • 用法: 多个条件组合定位

    • 示例: //input[@type='text' and @name='user']

  8. 通配符定位

    • 语法: //*//*[@属性='值']

    • 用法: 匹配任意标签

    • 示例: //*[@class='btn'] 定位所有class为btn的元素

  9. 轴定位

    • //标签名/轴::其他标签名

    • 常用轴: parent, child, ancestor, descendant, following-sibling, preceding-sibling

    • 语法:

    • 用法: 通过元素间关系定位

    • 示例: //div/following-sibling::span 定位div后面的同级span