影刀RPA新手教程:XPath语法速查表从入门到实战的15个核心表达式
很多刚接触影刀RPA的朋友跟我说,元素定位是卡住时间最长的环节。点击"捕获元素"按钮抓到的路径动不动就失效,一换页面就不认了。
其实原因很简单:系统自动生成的XPath太"死"了,页面稍微变化就找不到元素。学会手写XPath,你的自动化流程稳定性直接上一个台阶。
我也是非技术出身,今天就按最实用的方式整理一份XPath速查手册。
XPath的四种最常用写法
影刀RPA的"捕获元素"功能虽然方便,但自动生成的路径类似这样:
/html/body/div[3]/div[2]/div[1]/div[5]/span这种路径一旦页面加了广告位或改了布局,就全废了。下面四种手写方式要掌握:
1. 属性精确匹配
店群矩阵自动化突破运营极限!
最稳的方式,通过元素的id、class等属性定位:
# 通过id定位(唯一性最高) //*[@id="search-input"] # 通过class定位 //input[@class="search-key"]  # 通过任意属性定位 //a[@href="/login"]@表示"属性",*表示"任意标签"。影刀RPA中点击"捕获元素"后,可以在高级编辑里把自动生成的路径替换成手写的。
2. 文本内容匹配
当你只知道元素里的文字,不知道它是什么标签时:
# 精确匹配文本 //*[text()="登录"] # 模糊匹配(包含某段文字) //*[contains(text(),"拼多多")]实测好用:电商页面很多按钮文字会带空格,这时候contains(text(),'搜索')比text()='搜索'稳得多。
3. 参照物定位
这是我采集小红书数据时最常用的技巧。你不知道目标元素怎么定位,但你知道它旁边有个固定文字:
# 场景:要找"粉丝数"数字,先定位"粉丝"标签 //*[contains(text(),"粉丝")]/../following-sibling::*[1] # 场景:要找价格,通过"¥"符号定位 //*[contains(text(),"¥")]/ancestor::div[1]//*[@class="price"]/..表示回到父级,following-sibling是后面的兄弟节点,ancestor是祖先节点。
4. 层级与序号定位
# 取第3个匹配的元素 (//div[@class="item"])[3] # 取最后一个 (//div[@class="item"])[last()] # 取某标签下的第一个子元素 //ul[@class="list"]/li[1]五个容易踩坑的场景
| 场景 | 典型报错 | 解决方案 |
|---|---|---|
| 动态class名 | “未找到元素” | 用contains(@class,"固定部分")替代@class=全名 |
| iframe内元素 | 捕获不到 | 先用"切换到iframe"指令,再捕获内部元素 |
| 元素未加载 | “元素不存在” | 在操作前加"等待元素出现"指令,超时设10秒 |
| 多个匹配结果 | 操作了错误元素 | 加序号[N]或用父级缩小范围 |
| 隐藏元素 | 无报错但无效 | 检查display:none,先滚动到可见区域 |
影刀RPA的一个细节:在"捕获元素"弹窗里,右键已捕获的元素可以选"编辑XPath",这里改路径比在指令面板里逐层点方便得多。
三个推荐工具
temu店群自动化报活动案例
XPath Helper(Chrome插件):打开任意网页,按Ctrl+Shift+X打开调试面板,输入XPath表达式,实时高亮匹配结果。这是学习XPath最快的方式。
影刀内置的元素编辑器:捕获元素后点"验证",如果匹配数是0就是路径写错了,匹配数大于1就说明不够精确,需要加序号。
浏览器F12控制台:在Console里输入$x('//div[@class="item"]')能直接看匹配了几个元素。$x是Chrome内置的XPath查询函数。
实战:拼多多商品标题定位
假设拼多多商品列表的HTML结构是这样的:
<divclass="goods-item"><divclass="goods-title">【官方补贴】冬季羽绒服男款加厚保暖</div><divclass="goods-price">¥89.9</div></div>直接捕获很可能拿到一个包含数字索引的长路径。手写的话:
# 捕获元素:拼多多商品列表页——商品标题 //div[contains(@class,"goods-title")] # 捕获元素:拼多多商品列表页——商品价格(取第一个) (//div[contains(@class,"goods-price")])[1]contains写法不依赖精确class名,页面加了goods-title v2这种后缀也不影响。
#影刀RPA #RPA自动化 #XPath #元素定位 #数据采集
作者:林焱
本文为《影刀RPA学习手册》系列文章之一,内容源于实操经验的整理与分享。