当前位置: 首页 > news >正文

影刀RPA新手教程_XPath语法速查表从入门到实战的15个核心表达式

影刀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"] ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/dd08eef48f9646428192fa175b6486dd.png#pic_center) # 通过任意属性定位 //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>![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/dc38a85134fe4acabdfa795688e0d916.png#pic_center)</div>

直接捕获很可能拿到一个包含数字索引的长路径。手写的话:

# 捕获元素:拼多多商品列表页——商品标题 //div[contains(@class,"goods-title")] # 捕获元素:拼多多商品列表页——商品价格(取第一个) (//div[contains(@class,"goods-price")])[1]

contains写法不依赖精确class名,页面加了goods-title v2这种后缀也不影响。


#影刀RPA #RPA自动化 #XPath #元素定位 #数据采集

作者:林焱

本文为《影刀RPA学习手册》系列文章之一,内容源于实操经验的整理与分享。

http://www.jsqmd.com/news/1016281/

相关文章:

  • 芯片测试中AU故障飙升至45%?可能是你的DFT约束没设对(以sync_set_reset为例)
  • QGIS 3.34.0尝鲜3DTiles:大雁塔模型加载实测与性能优化踩坑全记录
  • 线性回归实战指南:从零搭建可解释的业务预测模型
  • 用HAL库重写那个“只能收一个字节”的STM32串口中断,我发现了CubeMX没告诉你的细节
  • 温度依赖型神经网络模型设计与热力学特性分析
  • 从Notebook到生产环境的ML模型部署实战指南
  • AI安全新范式:Mythos如何实现漏洞发现与利用的自动化闭环
  • 入局智能体云时代:Google Cloud全栈赋能企业数字化新变革
  • 终极Navicat重置方案:Mac版Navicat16/17无限试用完整指南
  • 六类推理优化模式:降低AI推理成本40%的工程实践
  • 数据工程师生存地图:从语境缺失到系统性工程能力
  • HIVE面试别再死记硬背了!从内部表到数据倾斜,我用一个真实项目案例给你讲透
  • Emoji与Emoticon在文本挖掘中的语义处理实战
  • 掌控板OLED显示不亮?手把手教你用Arduino IDE正确驱动SH1106屏幕(附完整代码)
  • ESXi 7.0安装后必做的10项安全加固与网络配置(附免费许可证使用指南)
  • 上传视频就能反向拆解AI提示词,甚至一句话帮你剪出想要的片段
  • 崩坏3扫码登录革命:智能工具如何重塑游戏体验?
  • HC32单片机I2C驱动避坑指南:从状态码解析到稳定读写(基于M0P_I2C0)
  • 新手避坑指南:用Keil和STC89C52给蜂鸣器写C程序,为啥我的板子不响?
  • 别再只会用--nogpgcheck了!MySQL、Docker镜像GPG验证失败的通用排查思路
  • 别再被‘目标计算机积极拒绝’搞懵了!手把手教你排查pip安装LangChain时的网络/代理问题
  • LLM评估不是打分游戏:构建可归因、可迭代的深度评估框架
  • 保姆级教程:在银河麒麟V10系统上,为飞腾FT2000设备制作grub2启动U盘(附常见错误排查)
  • 告别VSCode Remote-SSH连接卡死:一个隐藏的JSON设置项如何解决‘插件无限加载’和‘Server启动失败’
  • 从一道笔试题看编程基本功:字符分类与闰年判断的N种实现与优化思路
  • DisplayPort调试实战:当你的4K显示器黑屏时,如何通过DPCD寄存器状态定位链路训练失败原因
  • S32DS调试报错别慌!手把手教你搞定PEMicro驱动识别问题(附最新驱动下载)
  • CH32V30x开发避坑指南:MounRiver里移动了Core、Ld这些文件夹,编译报错怎么一步步调回来?
  • RAG嵌入模型选型实战指南:避开MTEB陷阱,聚焦业务语义对齐
  • STM32串口中断只能收一个字节?别急着改代码,先检查这三个地方(附排查流程图)