ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

影刀RPA实操指南:企业微信群机器人Webhook错误通知封装

影刀RPA实操指南:企业微信群机器人Webhook错误通知封装 影刀RPA实操指南企业微信群机器人Webhook错误通知封装机器人跑批失败了自己不知道第二天上班才发现昨天的采集数据是空的——这是每个做影刀RPA的人都会遇到的痛。尤其你跑的是夜间任务人不在电脑前报错信息躺在日志里没人看。我第一次踩这个坑是给客户跑拼多多商品采集凌晨两点元素定位失败流程直接停了我早上九点才发现白白浪费了一夜。解决办法就是给流程装一个报警器用影刀RPA的【企业微信群通知】指令把错误信息实时推到企业微信群里。人手一部手机群里一响你就知道哪台机器人出事了。这篇文章把我在实际项目里封装企微Webhook错误通知的完整过程拆开讲从建机器人、拿Webhook地址到封装成子流程、配合异常处理自动报错最后给一份易错速查。你照着做一个小时就能给自己的流程装上这套报警系统。从安装准备到界面认识先跑通环境没装影刀RPA的先去官网下载客户端安装过程一路下一步就行。装完后重点做两件事一是装浏览器插件点客户端顶部的设置进入插件管理按浏览器类型安装对应插件否则后面网页自动化的元素捕获会用不了二是注册账号登录社区版每天有30分钟使用时长个人学习够用但跑夜间任务建议上创业版没有时长限制。界面布局看三块就够了左侧是流程画布指令从这里拖进去右侧是指令详情面板每个指令的参数都在这里配顶部工具栏有运行“调试”捕获元素这些按钮。企业微信这边的准备也很简单打开你想接收通知的群右键点添加群机器人选择新创建一个机器人起个名字创建完成后会弹出一个Webhook地址复制保存好。这个地址就是机器人的门牌号影刀RPA发消息全靠它。Webhook原理与消息格式搞懂机器人怎么收消息Webhook本质是一个URL你往这个URL发一个HTTP请求企微群机器人就会把请求里的内容发到群里。影刀RPA把这个过程封装成了【企业微信群通知】指令你不用自己写HTTP代码填参数就行。指令的核心配置项就两个配置项填什么说明机器人地址建群机器人时拿到的Webhook URL粘贴完整地址消息格式类型文本/markdown/文件/图片错误通知用文本或markdown官方文档对这个指令的定位说得很清楚用于即时播报流程状态或自定义内容至企业微信群实现流程监控。四种消息格式里错误通知最常用文本类型简单直接想让报错信息排版好看点用markdown类型可以加粗关键字、区分颜色。我个人的习惯是文本类型打底重要告警用markdown加个【紧急】前缀。别小看这个区分当你同时跑五六个流程、告警满天飞的时候一眼扫过去能不能抓住重点全靠消息格式设计。元素定位四合一采集环节是报错的源头错误通知做得再好也得知道错误从哪来。我封装的这套系统里报错大头是网页采集环节的元素定位失败所以这里把元素定位的四种手段一起讲清楚。元素捕获是起点。点击顶部工具栏的捕获元素按钮浏览器会自动跳转鼠标移到目标上出现橙色边框后点击确认。90%的简单场景这一步就够了。XPath处理捕获搞不定的场景。常用的写法我直接给你# 捕获元素商品价格字段class属性模糊匹配 //*[contains(class,price)] # 捕获元素通过文本内容定位下一页按钮 //a[contains(text(),下一页)] ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/b7b1228815984addb3ea09829d186fca.png#pic_center) # 参照物定位通过旁边稳定的文字定位动态元素 //*[text()库存]/following-sibling::*[1]CSS选择器和XPath是并列关系不是替代关系。我的选型经验按属性找元素用XPath的contains更灵活按层级结构找用CSS的子代选择器更简洁比如 div.list div.item 一层一层往下点。正则表达式用在文本提取上比如从共128条记录里抠出128写成\d就行。这里有个大坑我必须说Windows更新之后企微、飞书、微信这类客户端软件可能出现捕获成一个大框的情况这是系统的无障碍支持IAccessible注册表项被更新覆盖坏了去影刀官方文档搜微信、企业微信等软件突然无法捕获下载对应系统位数的注册表修复文件双击运行就好。我就因为这个排查了一下午最后发现根本不是流程写错了。变量与数据类型错误信息怎么拼出来报错通知里最关键的是变量。影刀RPA常用四种数据数字、字符串、列表、字典。错误信息拼接用字符串操作。Catch块里拿到的错误信息是字符串用【字符串拼接】或字符串格式化把流程名时间错误内容拼成一条完整告警。多个错误要批量通知时用列表。比如循环采集100个商品失败的先追加进一个列表变量循环结束后统一发送一条消息说清楚哪几个失败了比失败了就发一条、群里连响二十条要体面得多。调用API接口比如企微、飞书的开放接口返回的是JSON这时要先转成字典再按键取值。字典取值要留个心眼键不存在会报错两种方案——先用判断指令检查键是否存在或者用带默认值的取法取不到就给空字符串。JSON相关的完整链路是HTTP请求拿到响应 → 转JSON对象 → 操作字段 → 需要存表时再转回文本。这条链在飞书API那篇里会展开讲。流程控制与异常处理封装通知的骨架错误通知的核心是异常处理结构。影刀RPA的Try-Catch-Finally机制就是为这个场景设计的把可能出错的指令放进Try块Catch块负责把错误信息接住并发通知Finally块放清理动作关浏览器、删临时文件。我封装的标准结构长这样【Try】 打开网页 → 循环采集 → 数据写入表格 【Catch】 拼接告警文本当前时间 流程名 错误信息 发送企微通知调用通知子流程 打印日志记录完整错误堆栈 【Finally】 关闭浏览器 清理临时文件夹流程控制三件套配合使用For次数循环跑固定批次ForEach列表循环遍历商品列表While条件循环处理不确定页数的翻页。If条件判断用来做前置检查比如先用判断元素是否存在确认登录态还在不在就直接发告警退出别让流程在错误状态里空转。有一个逻辑设计我强烈建议加上告警防重复。同一个错误别反复发可以用一个布尔变量记录已告警Catch里先判断这个变量为真就跳过发送。我有次流程半夜陷入死循环企微群里连收了四百多条告警把群炸了从那以后所有流程都带防重复。网页自动化报错高发区的预防动作网页自动化是错误通知的客户来源把网页自动化写稳告警量能降一半。等待策略有三种固定等待死等几秒、等待元素出现、页面加载完成。错误通知场景下我推荐等待元素出现配超时时间超时就抛异常进Catch比死等三秒精准得多。弹窗处理按五步标准流程走检测弹窗、识别类型、选择处理方式点关闭/点确认、验证关闭、继续主流程。有的弹窗用常规捕获点不到属于盲点弹窗可以用图像识别兜底或者干脆按Esc键。翻页处理不确定总页数的情况先捕获下一页按钮循环里判断这个按钮的disabled属性或class里是否含有disabled找不到按钮或按钮置灰就退出循环。官方教程里专门提过捕获的这个元素不能校验最后一页的情况因为class属性不匹配——所以判断条件要写对属性。懒加载页面小红书、抖音这类要边滚动边采集用滚动元素指令滚一段采一段用index去重防止重复采集滚动后高度不再变化就判定到底了。数据处理告警里带上业务数据光说流程挂了没意义告警里要带上业务上下文采到第几条、哪个店铺、金额多少。Excel读写用【读取区域】【写入区域】指令把已完成的条数读出来拼进告警文本收到通知就知道丢了多少数据。批量处理用循环遍历行每行处理完更新一个计数器变量。文本提取用【字符截取】和正则把原始文本清洗成告警需要的字段。数据库操作SQLite、MySQL遵循查询→批量插入→关闭连接三步走连接不关是新手常见问题会导致连接数耗尽这种错也会触发告警——所以Finally块里记得关数据库连接不然你会收到自己设计的告警发出的告警。鼠标键盘与图像客户端软件的通知兜底企微、飞书这类客户端软件的界面元素捕获偶尔会失灵前面说的IAccessible问题就是典型这时候鼠标键盘模拟和图像识别就是兜底手段。鼠标操作分模拟模式和驱动模式客户端软件优先用驱动模式穿透力更强。图像识别五件套wait_appear等待图像出现、click点击、hover悬停、dblclick双击加上锚点定位——在目标图片上选9个锚点位置再加偏移量解决图像匹配但位置偏移的问题。OCR用在告警场景的反面不是发告警而是识别验证码、识别截图里的数字。识别结果校验一遍再用OCR不是百分百准。进阶技能HTTP请求是Webhook的底层想理解Webhook到底发了什么得会一点HTTP。影刀RPA的【HTTP 请求】指令支持GET/POST/PUT/DELETE等方法配置项包括URL、协议头、协议体响应结果保存为变量后包含status_code、content_type、content等字段status_code以2开头表示成功。其实【企业微信群通知】指令底层就是往Webhook地址发了一个POST请求协议体是一段JSON。理解了这一点你就能理解为什么Webhook地址泄露要重视——任何人拿到这个地址都能往你群里发消息。配套的【HTTP 下载】指令负责下载文件默认超时300秒下载大文件记得调大。这两个指令在进阶技能里属于必修因为企微、钉钉、飞书三家所有通知能力的底层都是HTTP。平台实战电商采集场景的告警设计拿我实际跑的拼多多商品采集流程举例完整告警设计分三层前置检查层流程开始先检查登录态和Cookie失效立即告警需要人工登录流程退出不空跑过程告警层单条数据采集失败进Catch记录到失败列表不中断主流程继续下一条结果汇报层流程结束无论成败发一条markdown格式的运行报告采集总数、成功数、失败数、耗时淘宝、天猫的流程同理只是元素结构不同。抖音这类无限滚动的平台告警里要额外带上滚动次数方便判断是不是被限流了。系统联动把告警接进运行错误处理影刀调度中心的运行错误处理功能可以配置应用出错时的自动通知邮件通知由影刀发送或自定义发件箱、钉钉群通知Webhook加密钥、企业微信群通知Webhook、飞书群通知Webhook还能配置执行其他应用出错时自动触发一个善后流程。我的用法是双保险调度中心的全局错误处理配置企微Webhook作为第一道防线流程内部的Try-Catch子流程作为第二道告警里带更详细的业务上下文。任务监控页面还能看到今日执行异常数、最近异常任务列表配合告警邮箱和钉钉群设置异常时自动收到提醒。工程化规范封装成子流程才是正解错误通知代码别在每个流程里复制粘贴封装成一个通知子流程所有流程共用。子流程设计三原则输入参数化流程名、错误信息作为输入参数、内部无业务逻辑只管发通知、输出留口子返回发送成功与否。调用时传入参数就行。命名规范我也固定下来了子流程用功能_动作命名比如通知_企微告警主流程用业务_平台_动作比如采集_拼多多_商品详情。调试技巧上子流程打断点一行行排查变量面板看每个变量的实时值比看日志快得多。版本选择上再说一句社区版每天30分钟夜间任务跑不完创业版无限制还带调度能力跑正式业务建议上创业版。易错速查企微通知常见问题最后给一份我踩坑攒出来的速查表现象原因解决发送报错Webhook失效机器人被删除或地址不完整重新建机器人复制完整URL消息发送成功群里看不到告警文本含特殊字符没转义文本类型优先少用生僻符号捕获企微客户端成大框Windows更新破坏IAccessible用官方注册表修复文件修复告警连发刷屏无防重复机制加已告警布尔变量判断文件类型发送失败文件路径错误或超限检查路径先HTTP下载到本地再发再加上三条文字版Webhook地址等同于群的大门钥匙别写进会外发的文档企微图片消息对图片有大小要求超了先压缩所有告警文本里带时间戳排查问题时时间线对不上是最折磨人的。学习资源与完整源码影刀官方有一套群通知专题视频课程企微、钉钉、飞书三个平台的配置演示都有官方文档里【企业微信群通知】【运行错误处理】两篇也是必读。我自己整理的这套告警封装完整流程源码放在代码仓库 home.linyan.cloud可以直接参考改造Try-Catch结构、防重复逻辑、运行报告模板都包含在内改个Webhook地址就能用到你自己的流程里。#影刀RPA #RPA自动化 #企业微信 #Webhook #异常处理作者林焱
返回列表