影刀RPA新手教程:网页截图与区域截图——证据留档的用法
流程跑挂了想复盘,日志里只有一行报错文字,页面当时长什么样完全不知道,这种抓瞎的感觉我经历过太多次。后来我给每条正式流程都加了截图留档:出错时截图、关键节点截图、采集结果截图,出了问题翻图就知道现场。影刀RPA的截图指令就两三条,用法简单,但文件命名、存储路径、和异常处理的配合有不少讲究,乱用等于没留证据。
我是做电商运营的,非技术出身,用影刀RPA两年多。第一次给客户交付采集流程时没做截图留档,页面改版后流程采回一堆空数据,客户问我到底哪一步出的问题,我翻遍日志说不清楚,最后重跑了一晚上才定位。从那以后截图留档成了我的固定动作。
这篇新手教程把网页截图、元素截图、截图与异常处理的配合一次讲清,顺带把截图在图像识别、验证留证、报表生成三个场景里的用法铺开,读完可以直接给自己的流程加上证据链。
环境准备:装好影刀RPA和浏览器插件
影刀RPA客户端从官网下载安装,装完在"设置"里给Chrome或Edge装浏览器插件,网页截图和元素捕获都依赖插件。界面三块:左上指令区、中间流程画布、右侧指令详情面板,指令面板顶部搜索框直接搜"截图"就能找到本文所有指令。
社区版每天30分钟运行时长,做截图这类操作绰绰有余;截图文件占磁盘,建议定期清理老图,这个坑在速查表里会展开。流程第一步老规矩:【获取已打开的网页对象】拿到网页对象变量,截图指令都基于这个对象工作。
新手先建立一个认知:截图不是给流程看的,是给人看的。流程判断状态要用IF元素可见(web)这类指令,截图只负责把现场固定下来,两者职责不同,别用截图加图像识别去替代本来能用元素定位做的事,那是绕远路。
网页截图指令:三种截图区域怎么选
网页自动化的主力是【网页截图】指令,指令面板搜索"网页截图"拖进流程,第一个参数选网页对象。核心参数是截图区域,官方给了三个选项,用途完全不同:
- 网页元素:通过指定操作目标的显示内容进行截图,截元素本身
- 网页可见区域:截取当前浏览器中可视区域的内容,看到什么截什么
- 整个网页:整个网页有滚动条的情况,会截图滚动条长度内的所有内容
选型很简单:留某个模块的证据(比如价格卡片、订单列表)用网页元素;还原用户看到的现场用网页可见区域;要完整长图留档用整个网页。第三个选项对验证码、活动页这类"必须看全貌"的场景特别有用,相当于自动滚屏拼接。
保存参数有四项:保存图片至剪切板(支持后续流程通过Ctrl+V操作将图片进行粘贴)、保存文件夹(设置图片的保存文件夹路径)、使用自动随机文件名(为截图自动生成不重复的文件名,以时间戳命名)、截图保存位置(把截图文件路径信息保存为变量)。我的固定配置是:指定文件夹加自动随机文件名,路径存变量,后面写入Excel用。
元素截图(win)与手机端截图:桌面和手机场景
网页之外的场景用【元素截图(win)】:对桌面软件中的元素进行截图,窗口对象根据操作目标自动匹配,或选一个之前通过【获取窗口对象】指令创建的窗口对象。参数和网页截图基本一致:保存图片至剪切板、保存文件夹、使用自动随机文件名(时间戳命名)、截图保存位置输出变量。桌面软件操作留证靠它,比如ERP系统的异常订单页面。
| 指令 | 作用对象 | 典型场景 |
|---|---|---|
| 网页截图 | 网页对象 | 页面留证、长图存档 |
| 元素截图(win) | 窗口对象 | 桌面软件留证 |
| 屏幕截图(手机) | 手机设备 | ADB自动化留证 |
| 元素截图(手机) | 手机元素 | 具体控件留证 |
手机自动化这边有【屏幕截图(手机)】和【元素截图(手机)】,做ADB手机自动化时用来留证和配合图像识别。四条指令参数风格统一,学会一条其他三条照搬。
截图保存路径是流程里流转的关键变量:拿到路径后可以写入Excel台账、作为附件发邮件、或者发飞书消息带图报警。证据的价值在于能被找到,只截不存等于白截。
证据留档的目录与命名规范
自动随机文件名是时间戳命名,能保证不重复,但一个月后翻图全靠时间猜。我的做法是"日期文件夹加用途前缀":流程开始时用日期时间指令算出当天日期,拼出保存文件夹路径,比如D盘下的截图归档目录再加当天日期子目录;时间戳文件名保留,Excel台账里追加一行记录截图用途和路径。
文件夹路径动态生成后,记得用创建文件夹指令确保目录存在,首次运行目录不存在会让截图指令报错,这是新手高频坑。截图用途写进文件名前缀也行,比如"报错_"“结果_”“对比_”,配合Excel台账双保险。
留档分级建议:日常结果截图保留30天,报错现场截图永久保留或至少保留90天,验证码和登录相关截图用完即删,里面可能有敏感信息。磁盘清理用定时子流程做,别等人来删。
截图与异常处理:Try-Catch里的标准动作
截图最大的价值在异常处理里。标准写法:把业务指令包进Try块,Catch块里第一件事用【网页截图】截当前可见区域,路径存变量,再用【输出日志】把报错信息和截图路径一起写进日志,最后【飞书机器人发送消息】或【邮件发送】把截图发出来。
fromxbotimportwebdefmain(args):page=web.get_active()try:# 业务操作:点击导出按钮并等待结果page.find('导出按钮').click()exceptExceptionase:# 出错先截图留证,再记录日志page.scroll_to(location='top',behavior='instant')img_path=page.screenshot(shot_type='client')print(f'流程报错:{e},现场截图:{img_path}')raise# 重新抛出,让上层流程感知失败截图前先把页面滚回顶部或目标区域,保证截到的是关键信息而不是页面底部,这个细节我在吃了两次亏之后才加上:报错时页面正好停在页尾,截图里什么都没有。Finally块里放清理动作,比如关闭弹窗,保证下一轮循环环境干净。
正式流程我还会在关键节点加截图:登录成功后截一张、导出完成后截一张、每批数据入库前截一张。截图多不多不重要,关键节点的现场必须在,出问题时按时间线能把过程拼出来。
截图的另外三个实战用途
用途一,图像识别的前置素材。影刀图像库的"添加新图像"功能需要目标图像素材,遇到点击右键菜单就消失的元素,官方文档给的办法是用Windows的PrtSc快捷键截到剪贴板再裁剪,或用带延迟截图功能的软件(比如延时2秒的截图工具):点"区域截图"按钮后在2秒内把右键菜单打开,延时到点后出现截图指示器,自由选择区域,再通过图像库的"本地文件导入"加进去。
用途二,报表生成。把采集结果渲染成页面后整页截图,作为日报图片发飞书群,比裸Excel好看也直观。配合网页截图的"整个网页"选项,长报表一张图搞定。
用途三,对比留证。改价前后各截一张图、活动开始前后各截一张,路径写进同一行Excel,客服和运营核对时一目了然。截图成本极低,但每次要用的时候都会感谢自己留了这一手。
数据处理与工程化:截图台账的闭环
截图路径别散落各处,统一进台账。用【追加写入Excel】把时间、用途、截图路径、关联订单号写进一张总表,查证据时先查表再开图。表本身用日期分表,避免单表过大变慢。
工程化上把"截图留档"封装成子流程:输入网页对象、用途说明、保存根目录,内部完成建目录、截图、写台账,输出截图路径。主流程里一行调用,所有流程统一证据格式,交付给客户也显得专业。
调试阶段不用到处截图,右键添加断点加单步执行,配合变量面板看值就够了;截图留档是给无人值守的定时任务用的,两者别混。
网页截图与区域截图易错速查
| 现象 | 原因 | 解决 |
|---|---|---|
| 截图指令报路径错误 | 保存文件夹不存在 | 先创建目录再截图 |
| 截图里没有目标内容 | 目标在视口外或页面底部 | 截图前先滚动到位 |
| 长图只有一屏 | 区域选错 | 截图区域选"整个网页" |
| Excel区域截图有怪图 | 区域含数据透视表 | 换区域或先转成普通区域 |
| 右键菜单截不到 | 菜单点开就消失 | PrtSc或延迟2秒截图再导入 |
补三条教训:一是截图文件会吃磁盘,定时清理子流程要配;二是敏感页面截图注意脱敏和保存期限,别把客户数据裸奔在共享盘;三是截图和图像识别别混用,能元素定位的不要用图像识别兜底,脆得多。
学习资源与延伸阅读
本文依据官方文档的"网页截图""元素截图(win)"两篇指令说明,三个截图区域的定义和剪切板、时间戳命名的说明都出自原文。完整流程源码我放在代码仓库 home.linyan.cloud,可以直接参考改造,里面有截图留档子流程、Excel台账模板和定时清理模块,导入影刀改个保存路径就能用。
#影刀RPA #RPA自动化 #网页自动化 #异常处理 #Excel
作者:林焱