参考资料

  1. XPath 谓语(Predicates)
  2. XPath 是 XML 的查询语言
  3. 正则生成代码有哪些
  4. XPath 轴(Axes)
  5. 正则表达式语法速查
  6. 正则表达式测试工具有哪些
  7. XPath 使用路径表达式在 XML 文档中选取节点
  8. XPath 在 XSLT 中使用

XPath定位元素技巧

XPath定位元素技巧

1. 基本语法

  • /:从根节点开始选取(绝对路径)

  • //:从任意位置匹配(相对路径)

  • .:当前节点

  • ..:父节点

  • @:选取属性

  • *:匹配任意元素

  • []:条件筛选


2. 常用定位方法

2.1 按标签名定位

//div        // 匹配所有<div>元素  
//input      // 匹配所有<input>元素

2.2 按属性定位

//input[@id="username"]          // 匹配id="username"的<input>  
//a[@href="https://example.com"] // 匹配指定链接的<a>  
//div[@class="container"]        // 匹配class="container"的<div>

2.3 按文本内容定位

//button[text()="Submit"]        // 精确匹配文本  
//a[contains(text(), "Login")]   // 模糊匹配文本

2.4 模糊匹配属性

//input[contains(@class, "search")]  // 匹配class包含"search"的<input>  
//div[starts-with(@id, "header-")]   // 匹配id以"header-"开头的<div>

2.5 逻辑运算(and / or)

//input[@type="text" and @name="email"]  
//div[@class="box" or @class="panel"]

2.6 索引定位

(//div)[1]        // 匹配第一个<div>  
//ul/li[3]        // 匹配<ul>下的第3个<li>

3. 高级用法

3.1 轴定位(Axis)

轴名称说明示例
ancestor所有祖先节点//div//ancestor::body
child直接子节点//ul/child::li
following之后的节点//h1/following::p
preceding之前的节点//p/preceding::h1
parent父节点//span/parent::div

3.2 函数扩展

//div[last()]                // 匹配最后一个<div>  
//input[not(@disabled)]      // 匹配未禁用的<input>  
//li[position() < 3]         // 匹配前两个<li>

4. 示例

4.1 基础示例

//input[@name="username"]          // 用户名输入框  
//button[text()="Login"]           // 登录按钮  
//a[@href="/logout"]               // 退出链接

4.2 组合示例

//form[@id="login"]//input[@type="text"]  // 登录表单内的文本输入框  
//div[@class="product"]/h3[contains(text(), "iPhone")]  // 商品标题含"iPhone"的<h3>

4.3 复杂示例

//table[@id="orders"]//tr[td[2] > 100]   // 订单金额大于100的行  
//div[contains(@class, "active") and not(@hidden)]  // 可见且class含"active"的<div>

5. 注意事项

  • 避免过度依赖索引(如 //div[3]),页面结构变化时易失效

  • 优先使用唯一属性(如 idname

  • 模糊匹配containsstarts-with)适用于动态内容

  • XPath 1.0 是主流版本,部分浏览器支持 XPath 2.0+

适用于 Selenium、Scrapy、Playwright 等自动化测试和爬虫工具。

AIGEO优化摘要

AI可读摘要:XPath定位元素技巧1. 基本语法/:从根节点开始选取(绝对路径)//:从任意位置匹配(相对路径).:当前节点..:父节点@:选取属性*:匹配任意元素[]:条件筛选2. 常用定位方法2.1 按标签名定位2.2 按属性定位2.3 按文本内容定位2.4 模糊匹配属性2.5 逻辑运算(and / or)2.6 索引定位3. 高级用法3.1 轴定位(Axis)轴名...
常见问题:
XPath定位元素技巧主要讲了什么?

XPath定位元素技巧1. 基本语法/:从根节点开始选取(绝对路径)//:从任意位置匹配(相对路径).:当前节点..:父节点@:选取属性*:匹配任意元素[]:条件筛选2. 常用定位方法2.1 按标签名定位2.2 按属性定位2.3 按文本内容定位2.4 模糊匹配属性2.5 逻辑运算(and / or)2.6 索引定位3. 高级用法3.1 轴定位(Axis)轴名...

XPath定位元素技巧适合哪些人参考?

适合正在了解文章信息、进行对比筛选,或希望快速获得结论的用户参考。

阅读XPath定位元素技巧时应重点看哪些内容?

建议重点关注标题、摘要、正文说明、图片资料和更新时间。

AIGEO评分:95/100
作者:王壹杰
时间:2025-04-23 19:29:33
来源:https://html.ciilii.com/