影刀RPA速查手册:常用指令分类速查 + 报错一搜即得
📅 2026/7/4 13:41:26
👁️ 阅读次数
📝 编程学习
影刀RPA速查手册:常用指令分类速查 + 报错一搜即得
整理了一份在实际项目里高频使用的指令和报错处理,按功能分类,碰到问题搜关键词就能找到。
一、安装和配置
Q:去哪里下载影刀?
www.yingdao.com,选Windows版,社区版免费。
Q:装完影刀,捕获网页元素时什么都捕不到?
浏览器插件没装。进Chrome扩展程序页搜"影刀"装上,Edge同样操作,装完重启浏览器。
Q:捕获框和元素位置有偏移?
6个排查方向:
- 系统DPI缩放不是100% → 去显示设置改
- 浏览器缩放不是100% → 浏览器设置里改
- 浏览器开了兼容模式 → 右键快捷方式→属性→取消兼容模式
- 系统文本大小自定义了 → 改回100%
- 远程桌面两端缩放不一致 → 两端统一
- Win10任务栏在顶部/左边 → 改到底部
改完重启影刀和浏览器。
二、元素定位速查
XPath常用写法
//div[@class='price'] # 精确class匹配 //div[contains(@class,'price')] # class模糊匹配(推荐,稳定) //span[text()='确认'] # 精确文本匹配 //span[contains(text(),'确认')] # 文本包含匹配(更安全) //ul[@id='list']/li[3] # 取第3个li //div[@class='row']//span # 所有后代span //span[@class='price']/parent::div # 向上找父div //li[last()] # 取最后一个li //li[position()>3] # 取第3个之后的所有liCSS选择器常用写法
.item-price/* class包含item-price */#submit-btn/* id为submit-btn */.order > .price/* .order的直接子元素.price */.order .price/* .order的所有后代.price */li:nth-child(2)/* 第2个li */li:last-child/* 最后一个li */[data-id='001']/*>'text']/* type属性为text的input */div.active.selected/* 同时有active和selected两个class */XPath vs CSS选择器,选哪个?
| 场景 | 推荐 |
|---|---|
| 按文字内容定位元素 | XPath(CSS不支持) |
| 需要向上找父节点 | XPath(CSS不支持) |
| 简单的class/id定位 | CSS(更简洁) |
| 按属性值定位 | 都可以,CSS语法更短 |
三、变量与数据类型速查
字符串操作
取索引:text[0] # 第1个字符 切片:text[0:5] # 前5个字符 拼接:text1 + text2 # 直接用+ 长度:len(text) # 字符数 去空格:text.strip() # 去首尾空格 去换行:text.replace('\n', '') 转大写:text.upper() 是否包含:'关键词' in text列表操作
取第一项:list[0] 取最后项:list[-1] 取长度:len(list) 追加:用"追加元素到列表"指令 是否包含:item in list字典操作
取值(可能不存在时):dict.get('key', '默认值') 判断键是否存在:'key' in dict 取值(确定存在时):dict['key']JSON相关
拼多多店群自动化上架方案
字符串→字典:用"文本转换为JSON"指令 字典→字符串:用"JSON转换为文本"指令 取深层嵌套值:data['level1']['level2'] 取列表里第一项的某字段:data['list'][0]['field']四、流程控制速查
循环类型选择
| 场景 | 用哪种循环 |
|---|---|
| 循环固定次数 | For次数循环 |
| 遍历列表每一项 | ForEach列表循环 |
| 遍历Excel每一行 | 循环Excel内容 |
| 循环网页所有相似元素 | 相似元素循环 |
| 不知道循环几次,条件满足才停 | While循环 |
| 完全不知道,遇到条件手动退出 | 无限循环+If判断+退出循环 |
异常处理模板
Try: [主流程逻辑] Catch (error): 打印 ('异常:' + str(error)) [备用处理,比如关闭弹窗、刷新页面] Finally: [无论成不成功都要执行,比如关浏览器、保存Excel]五、网页自动化速查
等待策略
| 场景 | 方法 |
|---|---|
| 等固定时间 | 等待N秒(不推荐,用以下替代) |
| 等页面某元素出现 | 等待元素出现(推荐) |
| 等加载动画消失 | 等待元素消失 |
| 等网络请求完成 | 等待元素出现(目标元素) |
弹窗处理
| 弹窗类型 | 处理方式 |
|---|---|
| 浏览器原生弹窗(系统级,只有OK/取消) | 处理对话框指令 |
| 页面内自定义弹窗 | 捕获关闭/确认按钮,点击 |
| 不知道什么时候会出现的弹窗 | 外层循环套Try-Catch,Catch里处理 |
翻页处理
知道总页数:
获取总页数 → For次数循环(总页数) → 每次循环末尾点下一页不知道总页数(推荐):
无限循环 { 采集当前页数据 获取"下一页"按钮的class属性 If class包含'disabled' → 退出循环 点击下一页 等待页面加载 }iframe处理
切换到iframe(选择目标iframe元素) [iframe内的操作] 跳出iframe [继续主页面操作]懒加载处理(核心思路)
维护一个"已采集记录列表",每次循环时获取当前可见的元素,用元素的唯一属性(如index值、订单号)和列表比对。已有则跳过,没有则采集并追加到记录列表。同时在每次循环后向下滚动鼠标,直到记录列表长度达到总数量或者连续滚动后数量不再增加。
六、数据处理速查
Excel操作
| 操作 | 指令 |
|---|---|
| 打开已存在的Excel | 启动Excel / 获取当前激活的Excel |
| 读取数据 | 循环Excel内容(逐行遍历) |
| 取某列数据 | loop_item[列序号,从0开始] |
| 写入单元格 | 在单元格写入内容 |
| 追加一行 | 在末尾写入,行号用计数变量 |
| 保存 | 保存Excel(必须做!) |
Excel常见报错
| 报错 | 原因 | 解决 |
|---|---|---|
| Can not convert Array to String | 把整行loop_item当字符串用 | 改为loop_item[0]取某列 |
| AttributeError: NoneType get_active_sheet | Excel对象没有赋值 | 加"启动Excel"指令 |
| 日期时间少8小时 | UTC时区问题 | 写入前加timedelta(hours=8) |
| 内存不足 | Excel文件太大 | 分批读取,每批处理完关闭 |
数据库操作
完整流程:连接数据库 → 执行查询/插入 → 关闭连接
批量插入性能更好(一次INSERT多条):
INSERTINTOorders(id,name,amount)VALUES(?,?,?),(?,?,?),...常见报错:
- 连接失败:检查主机名、端口、账号密码
- 表不存在:确认表名大小写、数据库名是否选对
- 权限问题:用更高权限的账号,或者让DBA开权限
- 字段不存在:对照表结构确认字段名拼写
七、鼠标键盘图像自动化速查
操作模式选择
| 场景 | 模式 |
|---|---|
| 跑流程时还要用电脑做别的 | 模拟模式(默认) |
| 需要稳定执行、不在乎占用输入设备 | 驱动模式 |
驱动模式需要在影刀设置里安装虚拟键盘驱动。
图像识别指令
| 指令 | 用途 |
|---|---|
| 等待图像出现 | 等目标图像显示在屏幕上 |
| 点击图像 | 点图像的某个锚点位置 |
| 悬停图像 | 鼠标移到图像上 |
| 双击图像 | 双击图像 |
锚点位置:9个(上中下 × 左中右),加偏移量可以精准点图像旁边。
八、进阶功能速查
HTTP请求
| 参数 | 填法 |
|---|---|
| URL | 完整接口地址 |
| 方法 | GET(查询)/ POST(提交/修改) |
| Headers | 鉴权:Authorization: Bearer token;内容类型:Content-Type: application/json |
| Body(POST) | JSON格式字典:{“key”: “value”} |
| 返回值 | 字符串,用"文本转JSON"转成字典再操作 |
Python代码块
defmain(args):# 取输入参数input_value=args['参数名']# 处理逻辑result=input_value.strip()# 返回结果return{'输出参数名':result}跨模块调用需要在文件开头加:from . import package
安装第三方库:用影刀的Python路径跑pip:
C:\影刀安装路径\python.exe-mpipinstallrequestsTEMU店群如何管理运营?
OCR识别
截图(保存到变量)→ OCR识别文字(选类型)→ 文本处理(strip、replace去杂质)验证码类型:纯数字/纯英文/数英混合/缺口识别/点选坐标 等。
ADB手机自动化
连接手机(连接名) 操作: - 找元素:find_by_text / find_by_xpath / find_by_id - 点击:click(x, y) 或 点击元素(手机) - 滑动:swipe(x1, y1, x2, y2, 时间ms) - 截图:screenshot(保存路径) - 后退:back() 断开连接九、系统联动速查
飞书消息通知
HTTP请求(POST) URL: 飞书机器人webhook地址 Body: { "msg_type": "text", "content": {"text": "消息内容"} }定时任务
调度中心 → 新建任务 → 设置触发方式(按天/按周/按月/Cron表达式)→ 选择应用 → 保存
电脑需要保持开机,影刀需要在运行状态。
邮件发送
发送邮件指令配置: - SMTP服务器:smtp.qq.com(QQ)/ smtp.163.com(163) - 端口:465(SSL) - 账号:发件邮箱 - 密码:邮箱授权码(不是登录密码) - 收件人:多人用逗号分隔 - 附件:指定文件路径十、工程化速查
子流程参数传递
子流程定义: 输入参数:param1, param2 取值方式:args['param1'] 返回值:return {'result': value} 主流程调用: 填写输入参数的值 保存返回值到变量命名规范建议
流程名:动词+对象 例:采集小红书笔记、发送每日报告 变量名:功能描述 例:current_page、data_list、order_info 子流程名:动词+对象+特征 例:写入Excel_单行、发送飞书消息_文本版本对比
| 功能 | 社区版(免费) | 创业版 | 企业版 |
|---|---|---|---|
| 基础自动化 | ✓ | ✓ | ✓ |
| 机器人数量 | 1个 | 多个 | 多个 |
| 调度中心 | ✗ | ✓ | ✓ |
| 多用户管理 | ✗ | ✗ | ✓ |
| 权限控制 | ✗ | ✗ | ✓ |
十一、报错全表
| 报错关键词 | 通常原因 | 排查方向 |
|---|---|---|
| 未找到控件 / 元素未找到 | 元素未加载/定位失效/在iframe里 | 加等待/修改XPath/切换iframe |
| NoneType has no attribute | 变量没有赋值(是None) | 打断点看变量值 |
| Can not convert Array to String | 列表当字符串用 | 用[0]取某列 |
| KeyError: ‘xxx’ | 字典里没有这个键 | 用.get()或先判断 |
| JSONDecodeError | JSON格式错误 | 打印原始字符串检查 |
| ConnectionRefused | 数据库/接口连不上 | 检查IP、端口、防火墙 |
| 对话框处理超时 | 浏览器弹窗没处理 | 加处理对话框指令 |
| XPath语法错误 | XPath写法不对 | 检查引号嵌套、节点名 |
| ModuleNotFoundError | Python库没安装 | 用影刀的pip安装 |
| AttributeError: get_active_sheet | Excel对象为空 | 加"启动Excel"指令 |
想要完整的指令速查文档和更多案例模板,可以在 home.linyan.cloud 查找影刀RPA学习资源。
#影刀RPA #速查手册 #常用指令 #报错处理 #RPA教程
作者:林焱
编程学习
技术分享
实战经验