影刀RPA新手教程:调试三板斧——日志、断点与单步执行
流程跑一半报错,日志里只有一行看不懂的英文,你盯着几十条指令不知道从哪查起——这是每个影刀RPA新手都会卡住的地方。我自己也是非技术出身,第一年做采集流程时,光是"列表转字符串"这个报错就排查了一下午,后来才明白:不是我不会写,是不会调。
调试不神秘,影刀RPA里真正常用的就三板斧:打印日志、断点、单步执行。这三样用熟,90%的报错都能自己定位,不用到处求人。
这篇我把三板斧挨个拆开讲,每一步精确到按钮,最后给你一张高频坑速查表。文章偏后还有一张十二大模块的全景对照表,把学影刀RPA要补的其他课也标了位置,方便你查漏。
装好影刀RPA再谈调试:版本与插件准备
调试功能依赖编辑器,先把环境装对。去影刀官网下载客户端,安装时一路默认即可,装完首次打开会让你注册账号登录。
登录后第一件事:装浏览器插件。在影刀客户端里找到浏览器扩展的安装入口,把你常用的 Chrome 或 Edge 插件装上,否则后面网页自动化指令全都会定位失败。
版本上有个现实差异要清楚:
| 版本 | 执行时长 | 适合谁 |
|---|---|---|
| 社区版 | 每天30分钟 | 学习、练手 |
| 创业版 | 无限制 | 个人接单、小业务 |
| 企业版 | 无限制+企业功能 | 团队协作 |
练调试阶段社区版完全够用,30分钟够你跑断点停停走走很多轮。
还有一个官方文档里明确写了的前提:只有在编辑器中打开应用时才能调试。计划任务执行、API调度执行、应用外右键运行,这几种方式都不能调试。所以排查问题永远回到编辑器里来。
第一板斧:打印日志——让流程自己交代它在干嘛
新手最常见的问题不是报错,而是"不报错但结果不对"。这时候你根本不知道流程中间哪一步把数据弄丢了,打印日志就是解决这个的。
在右侧指令面板搜「打印日志」,把它插到你怀疑的位置。它的参数很简单:
- 日志类型:调试/信息/警告/错误,四种,默认是信息类型
- 日志内容:可以直接输入文本,也可以点 fx 从下拉里选之前创建的变量,还可以切到 Python 模式写表达式
我现在的习惯是三类节点必加日志:循环开始前打一条"本轮处理什么"、关键取值后打一条"取到了什么"、写表格前打一条"准备写入什么"。跑完看运行日志,数据在哪一步变形的一目了然。
日志输出后去哪看?编辑器底部有「运行日志」面板,实时滚动。如果要给别人排查或者留档,两个办法:
- 用快捷键 Win+R 打开运行窗口,输入路径
%localappdata%\ShadowBot\log回车,日志文件夹按时间倒序排,最新的在最上面 - 5.14版本及之后,可以在个人头像点击右键 → 设置 → 关于影刀 → 点击「导出日志」按钮,把日志文件导到指定位置
打印日志的内容还能做格式化输出,Python 模式下写 f-string 就行:
# 打印日志指令切到 Python 输入模式后可以这样写# 输入:loop_item 是循环 Excel 行时取到的循环项# 输出:在「运行日志」里打印类型和内容,用来确认数据形状print(f"本轮循环项类型:{type(loop_item)},内容:{loop_item}")# 进阶:列表只打印第一项,避免整列刷屏# print(f"首项内容:{loop_item[0]}")这一招在我调采集流程时救过无数次——很多"取不到值"的问题,日志一打出来才发现取到的是个列表而不是字符串,形状错了。
第二板斧:断点——让流程停在你想看的那一行
日志是"跑完了回头看",断点是"跑到一半停下来现场看"。两个配合用,威力翻倍。
打断点的方法:鼠标移动到需要打断点的指令行号后面的空白处,点击。指令前会出现一个橙色的点,这个就是断点。
有两个细节官方文档里写得非常清楚,我自己也是踩过才记住:
- 自动暂停时,打断点的这条指令还没有被执行——所以你看到的是"执行到这条之前"的状态
- 暂停时,编辑器下方的调试变量板块会显示此时所有已定义变量的实时值和类型
第2点是断点真正的价值。光停在那一行没用,你要点开调试变量板块,看每个变量此刻到底是什么、类型是什么。很多诡异的 bug,停下来一看:变量是 None,或者是个列表,瞬间破案。
举个我踩过的真实例子,场景是批量拿 Excel 关键词去百度搜索:
- 第一次运行,第二行报
AttributeError: 'NoneType' object has no attribute 'get_active_sheet' - 在报错指令前打断点,运行,暂停后在调试变量板块看:Excel 对象变量是 None——说明我没用「启动 Excel」或「获取当前激活的 Excel」给它赋值
- 补上赋值指令再跑,又报
Can not convert Array to String.——再打断点看,循环 Excel 内容时循环项是个列表,而「填写输入框」要的是字符串,得从列表里取第一项 - 改完再跑,发现有一轮什么都没填就执行了搜索——再打断点,盯着 loop_excel 变量点「继续」,直到发现有一轮它的值是
[None] - 对照表格:里面混了一行空行。删掉空行,一切正常
一个下午的问题,三次断点,十分钟的现场查看,全解决了。
第三板斧:单步执行——一行一行往下爬
断点停住之后,你有两个选择,都在编辑器的调试工具栏上:
- 继续:从当前位置接着跑,直到碰到下一个断点或跑完。特别之处在于,循环里同一个断点会反复触发——跑到下一轮循环的同一行时再次暂停
- 单步调试:只执行当前暂停到的这一条指令,然后在下一条指令前再停。相当于一次点一下、往前挪一行
单步执行适合两种局面:一是断点位置没问题,但错误发生在它后面几行,你不知道具体是哪行,就单步一行行走,每走一步瞄一眼调试变量板块;二是循环类逻辑,配合断点反复暂停,盯着循环变量一轮一轮看它的变化。
案例里那个空行坑,我就是这么抓到的:断点打在循环体第四行,反复点「继续」,每停一次看一眼 loop_excel 的内容,直到它变成[None]。
两个保命快捷键也记一下:Ctrl+Alt+Q 停止执行应用,Ctrl+Alt+E 暂停(继续)执行应用。流程死循环狂开网页的时候,Ctrl+Alt+Q 能救命,这是我的亲身体会。
调试之外:把三板斧接进完整工程链路
三板斧解决"开发时排查",但流程交付后是没人盯着的,这就要把调试成果沉淀成工程化规范。
最基础的一层是 Try-Catch 异常处理:把可能出错的指令拖进 Try 块,Catch 块里放「打印日志」记录报错信息,再配合截图指令保存现场,Finally 块放清理动作比如关闭弹窗。这样线上出错时,你打开日志就能还原现场,等于把断点搬到了无人值守的场景。
再往上一层是通知:Catch 里抓到的错误,通过飞书群机器人发一条消息出来,流程半夜挂了你早上才知道和十分钟内知道,是两种体验。
网页自动化这块和调试的关系最紧。元素定位失败是最高频的报错,定位前先用三种等待(等待元素存在/等待元素出现/固定延时)排除加载问题;定位本身走"元素捕获 + XPath + CSS选择器 + 正则"四合一的路子,简单场景用捕获,动态页面用 XPath 模糊匹配,例如:
<!-- 场景:定位包含"下一页"文本的按钮,动态class页面用文本匹配更稳 --> //*[contains(text(),'下一页')] <!-- 场景:通过参照物定位——找"评价"标签旁边的数据区域 --> //*[contains(text(),'评价')]/following-sibling::*[1]调试三板斧 + 异常处理 + 三种等待,这一套下来,你的流程就从"能跑"进化到"跑得稳"了。
易错速查:调试场景高频坑
| 报错/现象 | 原因 | 解决 |
|---|---|---|
| 断点不生效 | 用计划任务或右键运行,不在编辑器里 | 回编辑器打开应用调试 |
| 暂停后变量没值 | 断点指令还没执行,输出变量自然为空 | 看的是"之前"的状态,往后单步一步 |
| 循环断点只停一次 | 忘了循环里同一断点会反复触发 | 反复点「继续」逐轮观察 |
| Can not convert Array to String | 把列表直接填进了字符串参数 | 取列表指定项或先转字符串 |
| NoneType object has no attribute | Excel/网页对象没赋值就用了 | 前面补「启动 Excel」等赋值指令 |
| NameError: name ‘’ is not defined | 变量重命名后没同步、或名称打错 | 检查调用名与定义名是否一致 |
十二个核心模块全景与本文落点
学影刀RPA是系统工程,单会调试不够。这张表把十二个核心模块全列出来,标了它们在本文的位置和补课要点:
| 模块 | 本文落点 | 补课要点 |
|---|---|---|
| 认识影刀/安装 | 已讲 | 插件必须装,社区版每天30分钟 |
| 元素定位四合一 | 已提及 | XPath六种写法+CSS八种语法+正则三场景 |
| 变量与数据类型 | 调试变量板块 | 数字/字符串/列表/字典/JSON |
| 流程控制 | 循环断点案例 | 四种循环+If判断+Try-Catch |
| 网页自动化 | 三种等待 | 弹窗五步流程、翻页、懒加载 |
| 数据处理 | Excel循环案例 | Excel读写、文本清洗、数据库 |
| 鼠标键盘图像 | 未展开 | 模拟vs驱动模式、图像识别锚点 |
| 进阶技能 | f-string表达式 | HTTP请求、Python协同、OCR、ADB |
| 平台实战 | 百度搜索案例 | 小红书/淘宝/拼多多采集套路 |
| 系统联动 | 飞书报错通知 | 飞书多维表格、邮件、定时任务 |
| 工程化规范 | Try-Catch沉淀 | 子流程封装、命名规范、断点排查法 |
| 速查表 | 本文重点 | 上面那张高频坑表就是起点 |
学习资源与延伸阅读
官方帮助文档里「如何调试影刀应用」那一篇值得逐字读,本文的断点操作细节都出自那里,配图比我描述得更直观。运行日志路径、导出日志这些冷知识也都在官方 FAQ 里。
完整流程源码我放在代码仓库 home.linyan.cloud,可以直接参考改造——里面有这套调试三板斧的实际用法,含 Try-Catch 和飞书通知的完整模板。
另外指令市场里搜「调试」能找到一些现成的日志工具指令集,装上就能用,个人版在指令市场弹窗里点安装即可。
#影刀RPA #RPA自动化 #调试技巧 #报错排查
作者:林焱