欢迎光临
我们一直在努力

影刀RPA避坑指南_自动化项目从开发到稳定运行的10个关键交付标准

影刀RPA避坑指南:自动化项目从开发到稳定运行的10个关键交付标准

很多人觉得自动化流程写完能跑就完事了。

但过一周你会发现:

  • 页面改版了,元素定位全失效
  • 日志是空的,不知道流程跑到哪了
  • 账号被限了,流程没有任何处理直接挂掉
  • 采集了3天的数据,发现有一半是重复的

跑得起来和能长期稳定运行,是两件完全不同的事。


在这里插入图片描述

一、标准1:流程有完整的日志输出

每个关键节点都要有日志,不能靠猜。

必须有日志的位置:

  • 流程启动(打印版本、执行时间、参数)
  • 每个账号/任务开始和结束
  • 关键操作成功(登录成功、采集完成、写入完成)
  • 所有异常(包括被捕获的)
  • 流程结束(汇总统计)

日志格式要统一:

# 推荐格式:[时间] [级别] 信息
import datetime

def log(level, msg):
ts = datetime.datetime.now().strftime('%H:%M:%S')
print(f"[{ts}] [{level}] {msg}")

log("INFO", "流程启动,账号数:20")
log("SUCCESS", "账号 acc_001 操作完成,结果:120 条")
log("WARNING", "账号 acc_003 登录态失效,已跳过")
log("ERROR", "账号 acc_007 采集失败:元素未找到")


在这里插入图片描述

二、标准2:有截图机制

纯文字日志不够,关键错误要有截图。

什么时候截图:

  • 进入 Catch 块时
  • 流程进入异常分支时
  • 人工检查点(比如进入下一步前截图存档)

截图文件管理:

店群矩阵自动化突破运营极限!

import os, datetime

截图目录 = "D:\\\\自动化截图"
如果 not 目录存在(截图目录):
创建目录(截图目录)

def take_screenshot(label):
![在这里插入图片描述](https://iblog.csdnimg.cn/direct/eed1e4a036ea4129a64b81606ccee070.png#pic_center)

ts = datetime.datetime.now().strftime('%Y%m%d_%H%M%S')
文件名 = f"{截图目录}\\\\{label}_{ts}.png"
截图(文件名)
return 文件名

截图文件夹每周清理一次,否则会占满磁盘。


三、标准3:数据有去重处理

批量采集的数据,不同跑批次之间经常会产生重复数据。

最基本的去重:

import pandas as pd

df = pd.read_excel("D:\\采集结果.xlsx")

# 按商品ID去重
df = df.drop_duplicates(subset=['商品ID'], keep='last')

# 没有唯一ID时,按多个字段组合去重
df = df.drop_duplicates(subset=['商品名', '店铺', '平台'], keep='last')

df.to_excel("D:\\采集结果_去重.xlsx", index=False)

增量采集的去重(避免重复入库):

# 已有数据里的ID集合
已有ID集 = set(历史数据['商品ID'].tolist())

# 只写入新数据
![在这里插入图片描述](https://iblog.csdnimg.cn/direct/b63017ecbfca412dae55ada85ba93122.png#pic_center)

新数据 = [row for row in 本次采集数据 if row['商品ID'] not in 已有ID集]


四、标准4:有失败记录和重跑机制

失败了不仅要记录,还要支持重跑。

失败记录格式:

失败时间 | 任务ID | 失败原因 | 是否已重跑 | 备注
2026-06-10 14:30 | T002 | 元素定位失败 | 否 | 需要人工确认页面结构

重跑流程设计:

# 读取失败记录
读取Excel("D:\\失败记录.xlsx") > 失败表

遍历行(失败表):
如果 当前行['是否已重跑'] == '否':
任务ID = 当前行['任务ID']

# 重新执行该任务
调用子流程(执行单任务, 任务ID=任务ID) > 重跑结果

如果 重跑结果 == '成功':
写入单元格(失败表, 当前行, '是否已重跑', '是')
否则:
写入单元格(失败表, 当前行, '备注', '重跑仍失败,需人工处理')

保存Excel(失败表)


在这里插入图片描述

五、标准5:元素定位要有备用方案

主 XPath 失效后,不要让整个流程停下来。

主备 XPath 模式:

# 先尝试主XPath
判断元素是否存在("//button[@id='submit-btn']", 超时=3) > 主定位成功

如果 主定位成功:
点击元素("//button[@id='submit-btn']")
否则:
# 降级到备用XPath
判断元素是否存在("//button[text()='提交']", 超时=3) > 备用定位成功
如果 备用定位成功:
点击元素("//button[text()='提交']")
输出日志("使用备用定位方案")
否则:
截图("两种定位都失败.png")
输出日志("元素定位全部失败,可能页面结构已更新")
返回 False


六、标准6:有操作频率控制

不加频率控制的流程,迟早会触发平台限制。

在这里插入图片描述

基本控制:

import random

def smart_wait(min_sec=1.0, max_sec=3.0):
"""随机等待,模拟人工操作节奏"""
wait_time = random.uniform(min_sec, max_sec)
固定等待(wait_time)

# 每次操作后
点击元素(按钮)
smart_wait(0.8, 2.0) # 操作间随机等待

# 每批完成后
如果 当前计数 % 30 == 0:
输出日志("已处理30条,休息5秒")
固定等待(5)


七、标准7:流程有启动自检

流程开始前,先检查运行环境是否就绪:

def pre_check():
"""启动前自检"""
错误列表 = []

# 检查配置文件是否存在
如果 not 文件存在("D:\\账号配置.xlsx"):
错误列表.append("账号配置文件不存在")

# 检查磁盘空间(不能少于500MB)
剩余空间 = 获取磁盘剩余空间("D:\\\\")
如果 剩余空间 < 500 * 1024 * 1024:
错误列表.append(f"磁盘空间不足,剩余 {剩余空间/1024/1024:.0f}MB")

# 检查网络连通性
[尝试]:
HTTP请求("https://www.baidu.com", 超时=5)
[异常]:
错误列表.append("网络连接失败")

如果 len(错误列表) > 0:
遍历列表(错误列表, 错误):
输出日志(f"❌ 自检失败:{错误}")
返回 False

输出日志("✅ 自检通过,开始执行")
返回 True

如果 not pre_check():
停止流程()


在这里插入图片描述

八、标准8:配置和代码分离

不要把任何参数写死在流程里。

必须外部化的配置:

  • 目标 URL
  • 登录账号密码
  • Webhook 地址
  • 运行参数(等待时间、重试次数、最大条数)

temu店群自动化报活动案例

  • 文件路径

# 不好的做法
url = "https://mms.pinduoduo.com/" # 写死在流程里

# 好的做法
![在这里插入图片描述](https://iblog.csdnimg.cn/direct/482249c5b87e4ca295aec7b11f69781e.png#pic_center)

url = 参数字典['pdd_url'] # 从 Excel 配置表里读


九、标准9:发布前要在测试数据上跑一遍

不要直接在生产数据上首次运行新流程。

测试清单:

  • 用测试账号跑完整流程一遍
  • 模拟网络超时(断网2秒)看流程能否恢复
  • 测试账号登录态失效的处理(手动清 Cookie)
  • 确认日志输出完整
  • 确认结果数据格式正确
  • 确认写入文件没有乱码
  • 确认飞书通知能收到

十、标准10:有流程版本管理

流程迭代后,要能回滚到上一个稳定版本。

在这里插入图片描述

最简单的版本管理:

在影刀里,流程名称带上版本号:

商品采集主流程_v1.0(稳定版,不要删)
商品采集主流程_v1.1(测试中)

更严格的做法是用影刀的"导出"功能,把稳定版本导出为 .yda 文件,存到网盘备份。


总结:10 条交付标准速查

#标准检查方式
1 完整日志 跑一遍,看日志文件
2 截图机制 手动触发异常,看截图是否生成
3 数据去重 跑两次,对比结果是否有重复
4 失败记录 制造一个失败,看是否记录
5 元素备用方案 修改XPath让主定位失败,看备用是否启用
在这里插入图片描述

| 6 | 频率控制 | 观察操作间隔是否有随机等待 | | 7 | 启动自检 | 删除配置文件,看是否提前报错 | | 8 | 配置分离 | 检查流程里有无硬编码的URL或密码 | | 9 | 测试跑通 | 在测试账号上完整跑一遍 | | 10 | 版本备份 | 确认有稳定版本备份 |


#影刀RPA #RPA交付标准 #自动化质量 #RPA避坑指南 #影刀实战

作者:林焱

本文为影刀RPA系列文章之一,内容源于实操经验整理与分享。

赞(0)
未经允许不得转载:171主机测评 » 影刀RPA避坑指南_自动化项目从开发到稳定运行的10个关键交付标准
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址