影刀RPA新手教程:图像识别点击完全指南——找不到XPath时用图像定位

影刀RPA新手教程:图像识别点击完全指南——找不到XPath时用图像定位

你有没有遇到过这种情况:要自动点击一个按钮,但是这个按钮没有id、没有class,或者用元素捕获抓不到,XPath和CSS选择器都试过了还是定位不到。这时候怎么办?用图像识别点击。影刀可以像人一样"看"屏幕,找到你指定的图片位置,然后点击它。本文用大白话教你从零学会图像识别点击,案例是在桌面应用里找到一个按钮图标,识别后点击它。

一、安装影刀

去官网下载安装包,右键"以管理员身份运行"安装。安装完后打开影刀,登录账号。流程设计器界面:左边指令区,中间画布,右边属性配置区。如果还没安装,先看完前面文章的安装步骤。

二、为什么需要图像识别点击

不是所有软件都能用XPath或CSS定位元素。以下场景XPath/CSS完全无效:

  • 桌面应用软件(比如用C++、C#写的Windows程序)
  • 游戏界面
  • 虚拟机里的软件
  • 某些用Canvas绘制的网页元素
  • 按钮是图片而不是文字的界面

这时候,图像识别就是唯一的选择。它的原理是:你提供一张小图片(比如一个按钮的截图),影刀在屏幕上搜索这张图片的位置,找到后点击坐标中心。
在这里插入图片描述

案例背景:有一个老旧的桌面ERP系统,界面上的"审核通过"按钮是一张图片,没有文字,元素捕获抓不到。我们要用图像识别找到这个按钮并点击它。

三、图像识别的基本原理

图像识别点击分三步:

  1. 准备模板图片:把你要点击的按钮截个小图(只截按钮本身,不要截周围的内容)
  2. 屏幕搜索:影刀在屏幕上搜索这张图片的位置
  3. 点击坐标:找到后,计算图片的中心坐标,模拟鼠标点击这个坐标

图像识别的准确率取决于:模板图片的质量、屏幕上目标图片的清晰度、相似度阈值设置。

相似度阈值:影刀找到一个图片后,会计算它跟模板的相似程度(0到1之间,1是完全相同)。你可以在指令属性里设置阈值,比如设0.8,意思是相似度大于80%才认为是找到了。阈值设太高会找不到,设太低会误点。

四、图像识别指令详解

影刀里跟图像识别相关的指令在"硬件自动化"→"图像"分类下:

查找图像

  • 功能:在屏幕上查找指定图片的位置

  • 参数:模板图片路径、查找范围(全屏或指定区域)、相似度阈值、超时时间

  • 输出:找到返回坐标(x,y),找不到返回空

  • 在这里插入图片描述

  • 用法:先准备模板图片(用截图工具截下来,保存到本地),然后在指令里选择这张图片

点击图像

  • 功能:查找图片并点击
  • 参数:比"查找图像"多一个"点击位置"(图片中心、左上角、自定义偏移)
  • 用法:最常用,一步完成查找+点击

等待图像出现

  • 功能:等屏幕上出现某张图片再继续
  • 场景:有些按钮是动态出现的(比如加载完成后才显示),用这个指令等待,出现了再点

等待图像消失

  • 功能:等屏幕上某张图片消失再继续
  • 场景:等加载动画消失、等弹出框关闭

拼多多店群自动化报活动上架!

案例里的关键步骤:

  1. 先手动操作一次,用截图工具截取"审核通过"按钮的图片,保存为approve_button.png
  2. 在影刀流程里,拖入"点击图像"指令
  3. 选择模板图片approve_button.png
  4. 设置相似度阈值为0.85(给一点容差,因为按钮可能有轻微色差)
  5. 设置超时时间为10秒(10秒内找不到就报错)
  6. 运行流程,影刀会自动在屏幕上找这个按钮,找到后点击

五、图像识别的高级技巧

在这里插入图片描述

多分辨率适配:如果你的流程要在不同分辨率的电脑上运行,模板图片可能匹配不上(因为缩放导致图片大小不一样)。解决方法:

  • 用"查找图像"指令的"多尺度匹配"功能(如果影刀支持)
  • 或者准备多套模板图片(一套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.pngclose_dialog.png)。在影刀流程里引用时,用相对路径而不是绝对路径。

模板图片更新机制:如果目标软件的界面改版了(按钮样式变了),要及时更新模板图片。建议定期检查(比如每周一次),发现匹配失败率上升就更新模板。

多备用模板:对于一个目标按钮,可以准备2-3张不同角度/不同状态的模板图片(比如正常状态、悬停状态、按下状态),查找时依次尝试,提高成功率。
在这里插入图片描述

调试技巧

  1. 在"点击图像"之前,先用"截图"指令保存当前屏幕,看看目标图片是否在屏幕上
  2. 用"查找图像"指令的"高亮显示"功能(如果有),确认找的位置对不对
  3. 把相似度阈值调低(比如0.6),看看能不能找到,如果找到了说明阈值设太高了

常见报错速查表

报错原因解决方法
找不到图片模板图片不匹配重新截图,检查相似度阈值
点击位置偏移图片找到了但坐标不准调整点击位置偏移量
误点击相似度阈值太低提高阈值
不同分辨率下失败模板图片分辨率不匹配准备多套模板或启用多尺度匹配
点击后没反应目标按钮实际上是禁用的先用图像识别判断按钮是否高亮

十五、完整案例:桌面ERP系统的自动审核

需求:有一个桌面ERP系统,每天有100条待审核记录,要自动点击每条记录的"审核通过"按钮。

流程步骤:

  1. 用"启动应用程序"指令打开ERP系统
  2. 用"等待图像出现"指令等待系统主界面加载完成(找一个特征图片,比如系统logo)
  3. 用"键盘输入→组合键Ctrl+Home"跳到第一条记录
  4. For次数循环,循环100次
    • 用"点击图像"指令点击当前记录的"审核通过"按钮(模板图片approve_button.png
    • 用"等待图像出现"指令等待确认对话框出现(模板图片confirm_dialog.png
    • 用"点击图像"指令点击"确定"按钮(模板图片ok_button.png
    • 用"等待图像消失"指令等待对话框关闭
    • 用"键盘输入→按下按键Down"移动到下一条记录
  5. 循环结束后,截图保存最终结果,发飞书消息通知

注意:每一步图像识别之后,加"等待"指令(等待1秒),让系统反应过来。如果某一步找不到图片,用Try-Catch捕获,截图保存,然后继续下一条。

十六、总结

在这里插入图片描述

图像识别点击是影刀里的重要保底方案,当所有元素定位方法都失败时,它就是你的救命稻草。虽然速度比元素定位慢,准确率也受图片质量影响,但它能处理元素定位处理不了的场景(桌面应用、游戏、Canvas绘图)。

核心要点:模板图片要截得准(只截目标,不要截背景);相似度阈值要调得合适(太高找不到,太低会误点);重要操作要加Try-Catch和通知。

更多影刀RPA教程和案例,访问 home.linyan.cloud

#影刀RPA #RPA教程 #图像识别 #桌面自动化 #RPA入门 #影刀教程 #自动化点击 #图像定位

作者:林焱

代码转载自:https://pan.quark.cn/s/8ce4326d996e 对于在 CentOS 7 系统中修改网卡配置文件后无法使设置生的情况,经过实践验证,可以通过使用 nmcli 命令来进行调整。完成修改之后,需要重新启动虚拟机以使更改生,这样操作流程即告完成。如果设置仍然无法生,则表明虚拟机在启动过程中所获取的 IP 地址配置并非针对 eth0,此可以对其它网卡的配置文件进行修改或将其移除。在 CentOS 7 系统中,网络配置的管理机制与早期版本存在差异,主要体现为采用了 Network Manager 服务来负责网络接口的管理。在某些情形下,尽管修改了 `/etc/sysconfig/network-scripts` 目录下的 `ifcfg-eth0` 文件,但网络配置却未能即。此类问题的发生通常源于 CentOS 7 采用了不同于以往的配置读取方法。接下来将具体阐述如何借助 nmcli 命令来处理这一挑战。 以 root 用户身份登录系统并打开终端界面。nmcli 是 Network Manager 供的命令行界面工具,它支持在命令行环境下执行网络连接的建立、编辑、查询及管理任务。针对修改 eth0 网卡配置的需求,可以遵循以下步骤进行操作: 1. 导航至 `/etc/sysconfig/network-scripts` 目录: ``` cd /etc/sysconfig/network-scripts ``` 2. 检查该目录内是否存在 `ifcfg-eth0.bak` 文件,该备份文件可能是先前调整配置遗留下来的,若存在可能造成冲突。若发现该文件,可以选择将其删除: ``` [root@localhost netw...
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值