影刀RPA新手教程:图像识别点击完全指南——找不到XPath时用图像定位
你有没有遇到过这种情况:要自动点击一个按钮,但是这个按钮没有id、没有class,或者用元素捕获抓不到,XPath和CSS选择器都试过了还是定位不到。这时候怎么办?用图像识别点击。影刀可以像人一样"看"屏幕,找到你指定的图片位置,然后点击它。本文用大白话教你从零学会图像识别点击,案例是在桌面应用里找到一个按钮图标,识别后点击它。
一、安装影刀
去官网下载安装包,右键"以管理员身份运行"安装。安装完后打开影刀,登录账号。流程设计器界面:左边指令区,中间画布,右边属性配置区。如果还没安装,先看完前面文章的安装步骤。
二、为什么需要图像识别点击
不是所有软件都能用XPath或CSS定位元素。以下场景XPath/CSS完全无效:
- 桌面应用软件(比如用C++、C#写的Windows程序)
- 游戏界面
- 虚拟机里的软件
- 某些用Canvas绘制的网页元素
- 按钮是图片而不是文字的界面
这时候,图像识别就是唯一的选择。它的原理是:你提供一张小图片(比如一个按钮的截图),影刀在屏幕上搜索这张图片的位置,找到后点击坐标中心。

案例背景:有一个老旧的桌面ERP系统,界面上的"审核通过"按钮是一张图片,没有文字,元素捕获抓不到。我们要用图像识别找到这个按钮并点击它。
三、图像识别的基本原理
图像识别点击分三步:
- 准备模板图片:把你要点击的按钮截个小图(只截按钮本身,不要截周围的内容)
- 屏幕搜索:影刀在屏幕上搜索这张图片的位置
- 点击坐标:找到后,计算图片的中心坐标,模拟鼠标点击这个坐标
图像识别的准确率取决于:模板图片的质量、屏幕上目标图片的清晰度、相似度阈值设置。
相似度阈值:影刀找到一个图片后,会计算它跟模板的相似程度(0到1之间,1是完全相同)。你可以在指令属性里设置阈值,比如设0.8,意思是相似度大于80%才认为是找到了。阈值设太高会找不到,设太低会误点。
四、图像识别指令详解
影刀里跟图像识别相关的指令在"硬件自动化"→"图像"分类下:
查找图像:
-
功能:在屏幕上查找指定图片的位置
-
参数:模板图片路径、查找范围(全屏或指定区域)、相似度阈值、超时时间
-
输出:找到返回坐标(x,y),找不到返回空
-

-
用法:先准备模板图片(用截图工具截下来,保存到本地),然后在指令里选择这张图片
点击图像:
- 功能:查找图片并点击
- 参数:比"查找图像"多一个"点击位置"(图片中心、左上角、自定义偏移)
- 用法:最常用,一步完成查找+点击
等待图像出现:
- 功能:等屏幕上出现某张图片再继续
- 场景:有些按钮是动态出现的(比如加载完成后才显示),用这个指令等待,出现了再点
等待图像消失:
- 功能:等屏幕上某张图片消失再继续
- 场景:等加载动画消失、等弹出框关闭
拼多多店群自动化报活动上架!
案例里的关键步骤:
- 先手动操作一次,用截图工具截取"审核通过"按钮的图片,保存为
approve_button.png - 在影刀流程里,拖入"点击图像"指令
- 选择模板图片
approve_button.png - 设置相似度阈值为0.85(给一点容差,因为按钮可能有轻微色差)
- 设置超时时间为10秒(10秒内找不到就报错)
- 运行流程,影刀会自动在屏幕上找这个按钮,找到后点击
五、图像识别的高级技巧

多分辨率适配:如果你的流程要在不同分辨率的电脑上运行,模板图片可能匹配不上(因为缩放导致图片大小不一样)。解决方法:
- 用"查找图像"指令的"多尺度匹配"功能(如果影刀支持)
- 或者准备多套模板图片(一套1080P的,一套4K的),根据屏幕分辨率选择对应的模板
相似度阈值的调优:刚开始用图像识别,建议把阈值设低一点(比如0.7),看看能不能找到。如果经常误点(点到了相似但不正确的位置),再把阈值调高(0.9)。
点击位置的偏移:有些按钮点击有效区域不是图片中心,而是某个特定位置。用"自定义偏移"设置点击坐标相对于图片左上角的偏移量。
截图保存技巧:截取模板图片时,尽量只截目标按钮本身,不要包含周围背景。背景越多,越容易匹配失败(因为背景可能变化)。
我当时踩过的坑:截取了一个按钮的图片,但按钮旁边有动态数字(比如"消息(3)",数字会变),导致匹配失败。解决方法:截图时只截纯图标部分,不要截文字部分。
六、图像识别 vs 元素定位:选型指南
| 场景 | 优先用 | 原因 |
|---|---|---|
| 网页元素 | XPath/CSS | 速度快,准确率高 |
| 桌面应用 | 图像识别 | 元素捕获可能失败 |
| 游戏界面 | 图像识别 | 没有DOM结构 |
| 按钮是图片 | 图像识别 | 元素捕获抓不到图片内部 |
| 需要高精度 | XPath/CSS | 坐标点击可能偏移 |
| 界面经常变化 | XPath/CSS | 只要元素属性不变就能定位 |
一般建议:能用药元素定位就不要用图像识别,因为元素定位更准确、速度更快。图像识别是"保底方案",当你试了所有元素定位方法都失败时,再用图像识别。

七、变量和数据类型在图像识别里的应用
图像识别的结果往往要用到变量里:
坐标变量:"查找图像"指令找到图片后,会返回坐标(x,y),存到两个数字变量里。你可以用这两个变量做后续操作(比如移动到坐标位置、计算偏移量)。
相似度变量:你可以把相似度阈值存到变量里,而不是写死在指令里。这样如果后面要调整阈值,只要改一个地方。
图片路径变量:如果你有多套模板图片(不同分辨率),可以把图片路径存到变量里,根据屏幕分辨率动态选择。
案例里的变量定义:
变量名:button_x
变量类型:数字
变量值:0(后面会被"查找图像"指令修改为实际坐标)
变量名:button_y
变量类型:数字
变量值:0
变量名:similarity_threshold
变量类型:数字
变量值:0.85
变量名:template_image_path
变量类型:字符串
变量值:"C:\Templates\approve_button.png"
八、流程控制:让图像识别更可靠
图像识别最容易出的问题是"找不到图片",所以流程控制特别重要。
Try-Catch异常处理:把"点击图像"指令包在Try里,如果找不到图片(超时),Catch里做处理:截图保存、发通知、尝试用备用图片重新查找。

While条件循环+等待:有些按钮是动态出现的,刚打开界面时还没有。用While循环:只要没找到图片,就继续等(用"等待图像出现"指令),最多等30秒,超过就报错。
If条件判断:找到图片后,可以先判断坐标是否在合理范围内(比如x应该在0到1920之间,如果是负数说明找错了),再点击。
For次数循环:如果一个界面上有多个相似的按钮(比如一排相同的图标),可以用"查找所有图像"功能(如果影刀支持),或者用循环+偏移量逐个查找。
九、网页自动化里的图像识别
虽然网页自动化优先用XPath/CSS,但有些场景图像识别更好用:
Canvas绘制的图形:有些网页用Canvas画图(比如流程图、游戏),里面的元素没有DOM节点,XPath抓不到,只能用图像识别。
验证码识别:有些简单验证码是图片,可以用图像识别定位验证码位置,然后配合OCR识别验证码内容。
动态加载的内容:有些网页内容是用JavaScript动态渲染的,元素捕获有时抓不到,但图片是可见的,可以用图像识别点击。
跨iframe的元素:网页里有iframe时,元素捕获可能跨不过去,但图像识别是在屏幕层面查找,不受iframe限制。
十、数据处理:图像识别结果的后续处理

图像识别点击往往只是第一步,后面还要处理数据:
点击后等待页面响应:点击按钮后,往往要等页面刷新或弹窗出现。用"等待图像出现"等待新界面上的特征图片(比如弹窗的关闭按钮图标)。
点击后读取数据:有些按钮点击后会显示数据(比如点击"详情"按钮后显示详细信息),这时候可以用元素定位或OCR读取显示的数据。
点击后截图保存:点击按钮后,截图保存操作结果,用作后续核对或审计。
案例扩展:点击"审核通过"按钮后,等待弹出的确认对话框出现(用"等待图像出现"等待对话框的"确定"按钮图片),然后点击"确定",再截图保存审核后的界面。
十一、进阶技能:OCR+图像识别组合使用
图像识别只能找到图片位置并点击,但如果你要知道图片上的文字内容,就需要OCR。
OCR识别图标上的文字:有些按钮图标上有文字(比如"确定"两个字在按钮图片上),你可以用OCR识别出文字内容,确认这是你要点击的按钮,再用图像识别点击。
OCR读取点击后的结果:点击按钮后,屏幕上会显示一段文字(比如"审核成功"),用OCR识别这段文字,确认操作是否成功。

百度AI/OCR配置:影刀支持百度AI、腾讯AI、阿里云AI三种OCR。需要在对应平台申请API Key,然后在影刀里配置。配置方法:指令区→"AI服务"→选择对应平台→填入API Key和Secret Key。
十二、平台实战:电商场景里的图像识别
图像识别在电商场景里有很多用处:
淘宝/天猫:有些按钮是图片(比如"立即购买"按钮),用图像识别点击。
拼多多:商品列表里的"收藏"按钮是一个星星图标,用图像识别找到所有星星图标,逐个点击。
抖音:视频下方的点赞、评论、分享按钮都是图标,用图像识别定位并点击。
TEMU店群矩阵自动化运营核价报活动
小红书:发布笔记时的"添加话题"按钮是一个"#"图标,用图像识别点击。
十三、系统联动:图像识别结果的通知

图像识别点击的结果也需要通知:
飞书消息:每次点击成功后,发飞书消息通知。如果点击失败(找不到图片),也发消息通知,并附带截图。
邮件报警:连续多次找不到目标图片,可能是界面改版了,发邮件通知人工检查。
飞书多维表格记录:每次点击操作记录一条日志(时间、目标图片、成功/失败、失败原因)。
十四、工程化与规范
图像识别自动化的工程化重点在于"模板管理"和"容错处理":
模板图片管理:把所有模板图片放在一个文件夹里,按功能命名(比如 approve_button.png、close_dialog.png)。在影刀流程里引用时,用相对路径而不是绝对路径。
模板图片更新机制:如果目标软件的界面改版了(按钮样式变了),要及时更新模板图片。建议定期检查(比如每周一次),发现匹配失败率上升就更新模板。
多备用模板:对于一个目标按钮,可以准备2-3张不同角度/不同状态的模板图片(比如正常状态、悬停状态、按下状态),查找时依次尝试,提高成功率。

调试技巧:
- 在"点击图像"之前,先用"截图"指令保存当前屏幕,看看目标图片是否在屏幕上
- 用"查找图像"指令的"高亮显示"功能(如果有),确认找的位置对不对
- 把相似度阈值调低(比如0.6),看看能不能找到,如果找到了说明阈值设太高了
常见报错速查表:
| 报错 | 原因 | 解决方法 |
|---|---|---|
| 找不到图片 | 模板图片不匹配 | 重新截图,检查相似度阈值 |
| 点击位置偏移 | 图片找到了但坐标不准 | 调整点击位置偏移量 |
| 误点击 | 相似度阈值太低 | 提高阈值 |
| 不同分辨率下失败 | 模板图片分辨率不匹配 | 准备多套模板或启用多尺度匹配 |
| 点击后没反应 | 目标按钮实际上是禁用的 | 先用图像识别判断按钮是否高亮 |
十五、完整案例:桌面ERP系统的自动审核
需求:有一个桌面ERP系统,每天有100条待审核记录,要自动点击每条记录的"审核通过"按钮。
流程步骤:
- 用"启动应用程序"指令打开ERP系统
- 用"等待图像出现"指令等待系统主界面加载完成(找一个特征图片,比如系统logo)
- 用"键盘输入→组合键Ctrl+Home"跳到第一条记录
- For次数循环,循环100次
- 用"点击图像"指令点击当前记录的"审核通过"按钮(模板图片
approve_button.png) - 用"等待图像出现"指令等待确认对话框出现(模板图片
confirm_dialog.png) - 用"点击图像"指令点击"确定"按钮(模板图片
ok_button.png) - 用"等待图像消失"指令等待对话框关闭
- 用"键盘输入→按下按键Down"移动到下一条记录
- 用"点击图像"指令点击当前记录的"审核通过"按钮(模板图片
- 循环结束后,截图保存最终结果,发飞书消息通知
注意:每一步图像识别之后,加"等待"指令(等待1秒),让系统反应过来。如果某一步找不到图片,用Try-Catch捕获,截图保存,然后继续下一条。
十六、总结

图像识别点击是影刀里的重要保底方案,当所有元素定位方法都失败时,它就是你的救命稻草。虽然速度比元素定位慢,准确率也受图片质量影响,但它能处理元素定位处理不了的场景(桌面应用、游戏、Canvas绘图)。
核心要点:模板图片要截得准(只截目标,不要截背景);相似度阈值要调得合适(太高找不到,太低会误点);重要操作要加Try-Catch和通知。
更多影刀RPA教程和案例,访问 home.linyan.cloud
#影刀RPA #RPA教程 #图像识别 #桌面自动化 #RPA入门 #影刀教程 #自动化点击 #图像定位
作者:林焱

1780

被折叠的 条评论
为什么被折叠?



