影刀RPA开发规范:应用命名/子流程编号/元素命名/变量命名

流程跑了一个月后,回去看自己写的代码——变量名叫abtemp,子流程叫子流程1子流程2,完全想不起来当初是干什么的。
如果是团队协作,别人更看不懂你的流程。

规范不是形式主义,是给自己省时间。
我踩了半年坑后总结了一套命名规范,现在回头看半年前的流程,5分钟就能找到要改的地方。


一、应用命名:一眼知道这个流程是干嘛的

命名格式

[平台]_[业务]_[版本号]

示例


![picture.image](https://p6-volc-community-sign.byteimg.com/tos-cn-i-tlddhu82om/a5c44d74a1ca48d2be4d3c11fbc05a42~tplv-tlddhu82om-image.image?=&rk3s=8031ce6d&x-expires=1781491870&x-signature=bb1qlZC45dzDK1n%2FdL4Z26OLiYU%3D)
拼多多_商品价格监控_V2.3
淘宝_自动上架_V1.0
小红书_达人数据采集_每日版
TEMU_订单批量发货_正式

![picture.image](https://p6-volc-community-sign.byteimg.com/tos-cn-i-tlddhu82om/213e7e0190e141e3827c47a4a3572c75~tplv-tlddhu82om-image.image?=&rk3s=8031ce6d&x-expires=1781491870&x-signature=OrIGC8sPdwkifbLBgSdJF56NmD0%3D)

规则解读

  • 平台前缀:方便按平台分类(拼多多、淘宝、小红书、TEMU、飞书)
  • 业务描述:2-6个字,说清楚核心功能(价格监控、自动上架、数据采集)
  • 版本号:V1.0、V2.3,每次大改版升级版本,小修复不改

picture.image

影刀操作

应用名称在左上角可以修改,建议创建时就按规范命名,不要用默认的“新建应用1”。

picture.image

picture.image

picture.image

二、子流程编号:ABCD法 + 两位数字

命名格式

[字母前缀][两位数字]_[功能描述]

字母前缀含义(参考选题池13号)

picture.image

前缀含义示例
A初始化A01_打开浏览器并登录
B批量/循环B01_翻页采集控制器
C单次解析C01_解析商品卡片
D数据处理D01_清洗价格销量
E输出E01_写入Excel
F异常处理F01_验证码处理
Z测试/调试Z01_测试单个商品

数字规则

  • 从01开始递增
  • 同一前缀内按执行顺序编号
  • 如果需要插入新子流程,用A02_1(不推荐,说明前期规划不足)

示例:一个完整的采集应用

主流程(不编号,就叫“主流程”)
A01_登录淘宝
A02_进入搜索页
B01_翻页采集控制器
    ├── C01_采集当前页商品列表
    ├── C02_解析单个商品(被C01调用)
    └── C03_翻页到下一页
D01_数据去重与清洗
E01_写入Excel并发送飞书通知
F01_重试机制(被C02调用)

影刀操作

创建子流程时,名称框里直接输入A01_登录淘宝

picture.image 子流程列表会按字母+数字自动排序,非常清晰。


三、元素命名:不用默认的“元素1”“元素2”

命名格式

[页面/模块]_[功能]_[类型]

示例

首页_搜索框_输入框
搜索结果页_商品卡片_父容器
搜索结果页_商品标题_文本
详情页_价格_文本
详情页_购买按钮_按钮
登录页_下一页按钮_按钮

规则

  • 页面/模块:定位元素在哪一页(首页、搜索结果页、详情页、登录页)
  • 功能:这个元素是干嘛的(搜索框、商品卡片、价格、购买按钮)
  • 类型:可选,标注元素类型(输入框、按钮、文本、父容器、链接)

好处

  • 在元素库里搜索“价格”,能看到所有页面的价格元素
  • 翻页时不会把“首页_下一页”和“搜索结果页_下一页”搞混

picture.image

  • 团队协作时,别人一看名字就知道该用哪个

影刀操作

捕获元素后,在弹出的命名框里直接改,不要点确定后再改。


四、变量命名:见名知意,带类型前缀

命名格式

[类型前缀]_[描述]

类型前缀(我用这套)

前缀含义示例
str_文本str_商品标题、str_登录URL
int_整数int_页码、int_采集条数
list_列表list_商品卡片、list_价格列表
dict_字典dict_商品数据、dict_请求参数
bool_布尔bool_是否有下一页
obj_对象obj_Excel对象、obj_浏览器页面

示例

好的变量名:

str_关键词 = "运动鞋"
int_当前页码 = 1
list_商品数据 = []
bool_登录成功 = False
obj_Excel = 打开Excel("C:\data.xlsx")

差的变量名(不要学):

a = "运动鞋"
page = 1
data = []
flag = False
excel1 = 打开Excel(...)

循环内的临时变量

循环遍历列表(list_商品卡片, 当前卡片)
    str_标题 = 获取元素文本(当前卡片, ".//a")
    str_价格 = 获取元素文本(当前卡片, ".//span")
    # 不要用 title、price 这种太通用的名字

影刀操作

创建变量时(“设置变量”指令或流程参数),变量名框里按规范输入。


五、常量集中管理

做法

在主流程最前面,用“设置变量”把所有常量定义好。

str_搜索URL = "https://www.pinduoduo.com/search.html"
int_最大翻页数 = 10
int_等待超时秒数 = 8
str_Excel保存路径 = "C:\RPA_Results\拼多多采集.xlsx"

好处

  • 修改URL或路径时,不用翻遍整个流程
  • 新人接手时,一看顶部就知道核心参数

进阶:用“全局变量”跨子流程共享

常量可以在“全局变量”面板里定义(左侧“变量管理”),所有子流程都能用。
但注意不要滥用,只在真正需要全局的地方用。


六、注释规范:不是写给自己看的

什么时候必须加注释

  • 复杂的XPath(说明为什么这样写)
  • 非直觉的数学计算(比如价格单位换算)
  • 异常处理的备用方案
  • 魔数(为什么是等待3秒而不是2秒)

注释格式

在指令上方加一个“注释”指令(流程控制 → 注释),或右键指令选“添加注释”。

// 注释:等待页面加载完成,等待商品卡片出现(网络慢时8秒足够)
等待元素出现(商品卡片, 8秒, 超时)

// 注释:拼多多销量含“万”字,需要转换,示例“10万+” -> 100000
如果 contains(销量原始, "万")
    销量数字 = 转换为数字(正则提取(销量原始, "\d+")) * 10000

不要写的注释

// 设置页码为1(代码本身已经表达了)
// 从上一页采集完成后重置页码,因为翻页函数会自增


七、流程结构规范(文件夹组织)

推荐结构

在影刀左侧“流程”面板,可以创建文件夹来组织子流程。

主流程
├── 01_初始化 (文件夹)
│   ├── A01_打开浏览器
│   └── A02_登录
├── 02_采集 (文件夹)
│   ├── B01_翻页控制器
│   ├── C01_采集当前页
│   └── C02_解析单商品
├── 03_数据处理 (文件夹)
│   └── D01_清洗去重
└── 04_输出 (文件夹)
    └── E01_写入Excel

操作

右键“流程” → 新建文件夹,然后拖拽子流程进去。


八、团队协作规范(2人以上)

如果多个人维护同一套流程,还需要加:

1. 变更记录

在应用描述(右上角“应用信息”)里记录每次修改:

2025-01-15 林焱: 增加翻页超时重试机制
2025-01-10 张三: 修改价格XPath适配改版

2. 元素库分组

在元素库里创建文件夹,按页面分:

元素库
├── 首页
│   ├── 首页_搜索框
│   └── 首页_登录按钮
├── 搜索结果页
│   ├── 搜索结果页_商品卡片
│   └── 搜索结果页_下一页按钮
└── 详情页
    ├── 详情页_价格
    └── 详情页_购买按钮

3. 禁止硬编码

不要直接把账号密码写在流程里。用“输入参数”或“全局变量”从外部传入,或者用影刀的“凭证管理器”(企业版功能)。


九、常见问题速查

问题原因解决方法
子流程叫“子流程1”,找不到了创建时没改名右键重命名,按ABCD规范改
变量名用了中文,Python代码报错Python不支持中文变量名(除非用UTF-8声明)统一用英文或拼音,加前缀
元素库里几十个元素,不知道用哪个没按页面分组创建文件夹,拖进去分类
改了常量值,但流程没生效常量定义在子流程内部,没传到主流程把常量统一放在主流程开头,用流程参数传递
团队成员用了不同的命名风格没有书面规范打印本文贴墙上,或存团队文档

十、规范检查清单(跑流程前自查)

  • 应用名称包含平台和业务?
  • 子流程按ABCD编号?
  • 元素命名包含页面和功能?
  • 变量加了类型前缀?
  • 常量集中在流程顶部?
  • 复杂XPath加了注释?
  • 没有叫abtemp的变量?
  • 没有叫子流程1元素1的默认名?

推荐资源

  • 影刀官方学院: “最佳实践——流程开发规范”(有官方推荐命名规则)
  • 我的文章联动:
    • 子流程拆分:[子流程拆分原则(选题池13号)]
    • 流程参数:[流程参数实战(选题池14号)]
  • 工具推荐: 用影道的“搜索”功能(Ctrl+F),可以搜变量名、元素名、指令内容,规范命名后搜索效率翻倍

作者:林焱

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

0
0
0
0
评论
未登录
暂无评论