news 2026/7/19 9:37:13

AutoTiny键鼠录制+图像识别:循环分支逻辑如何实现全自动操作?

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
AutoTiny键鼠录制+图像识别:循环分支逻辑如何实现全自动操作?

AutoTiny键鼠录制+图像识别:循环分支逻辑如何实现全自动操作?

在自动化办公、游戏挂机或重复性UI测试中,键鼠录制是最基础的功能。但单纯的录制回放只能应对线性流程——一旦界面变化、弹窗出现或操作延迟,脚本就会崩溃。AutoTiny作为一款轻量级键鼠自动化工具,提供了“录制+图像识别+循环分支”的组合能力,让自动化脚本真正具备“判断力”。本文将深入解析如何利用 AutoTiny 的循环分支逻辑,结合图像识别,构建健壮的全自动操作流程。

一、环境准备

在开始之前,请确保你已安装 AutoTiny(版本 ≥ 2.5.0)。下载地址:[官方 GitHub 仓库](https://github.com/auto-tiny/autotiny) 或官网。

此外,你需要准备:

  • 一个需要自动化的目标应用(如浏览器、游戏窗口)
  • 目标界面的截图(用于图像识别)
  • 基本的逻辑思维(无需编程基础)

AutoTiny 支持 Windows/macOS,本文以 Windows 为例演示。

二、核心概念:录制 ≠ 自动化

很多人误以为“录制=自动化”,但实际录制只是记录鼠标点击、键盘输入和延时。一旦目标界面布局改变(比如按钮位置移动、弹窗出现),录制回放就会错位。

AutoTiny 的解决方案:用图像识别替代固定坐标,用循环分支处理不确定性。

  • 图像识别:通过截图匹配,找到目标元素在屏幕上的实时位置。
  • 循环分支:重复执行某段操作,直到满足条件(如“找到目标图像”或“超时”)。

三、实战:用循环分支+图像识别实现自动签到

假设我们要自动化一个网页的每日签到流程,流程如下:

1. 打开签到页面

2. 点击“签到”按钮(按钮位置可能因浏览器窗口大小变化)

3. 等待“签到成功”弹窗出现

4. 关闭弹窗

5. 重复步骤 2-4,直到今日签到完成(或出现错误)

3.1 录制基础动作

首先,录制一次完整的签到操作:

  • 点击“签到”按钮
  • 等待 2 秒
  • 点击“关闭”按钮

录制完成后,你会得到一个.json脚本。但直接回放会失败,因为坐标是写死的。

3.2 用图像识别替代固定坐标

AutoTiny 支持在动作中使用“图像锚点”。例如,将“点击签到按钮”替换为“查找截图【sign_btn.png】并点击”。

操作步骤

1. 截取“签到”按钮的图像,保存为sign_btn.png

2. 在 AutoTiny 编辑器中,将鼠标点击动作改为“图像点击”,选择该截图

3. 同理,将“关闭弹窗”改为图像点击,截图保存为close_btn.png

现在脚本不再依赖坐标,而是通过图像匹配找到按钮位置。

3.3 引入循环分支逻辑

但问题来了:如果签到失败(比如按钮未加载),脚本会卡死。我们需要一个循环结构,反复尝试点击,直到成功或超时。

AutoTiny 的循环分支通过“条件节点”实现。以下是一个伪代码逻辑:

循环开始 (条件:图像 sign_btn.png 存在)

点击图像 sign_btn.png

等待 1 秒

如果 图像 close_btn.png 出现

点击 close_btn.png

跳出循环 (签到成功)

否则

继续循环 (等待按钮再次出现)

循环结束

超时处理:输出日志“签到失败”

在 AutoTiny 中,你可以通过拖拽节点实现:

1. 添加一个循环节点,设置循环条件为“图像 sign_btn.png 存在”

2. 在循环体内添加图像点击节点

3. 添加条件判断节点:检测close_btn.png是否存在

4. 若存在,执行点击并添加跳出循环节点

5. 若不存在,添加延迟节点(如 1 秒),然后自动返回循环头

3.4 完整脚本示例(JSON 格式)

AutoTiny 脚本本质是 JSON 结构,以下是一个简化示例(实际编辑器中无需手写):

{

"version": "2.5",

"actions": [

{

"type": "loop",

"condition": "image_exist",

"image": "sign_btn.png",

"max_attempts": 10,

"timeout": 30,

"body": [

{

"type": "click_image",

"image": "sign_btn.png"

},

{

"type": "delay",

"duration": 1000

},

{

"type": "if",

"condition": "image_exist",

"image": "close_btn.png",

"then": [

{

"type": "click_image",

"image": "close_btn.png"

},

{

"type": "break_loop"

}

],

"else": [

{

"type": "delay",

"duration": 500

}

]

}

]

},

{

"type": "log",

"message": "签到流程完成"

}

]

}

3.5 运行与调试

1. 在 AutoTiny 中导入上述脚本

2. 确保截图文件(sign_btn.png,close_btn.png)位于脚本同目录

3. 点击“运行”,观察控制台输出

如果图像识别失败(如按钮被遮挡),可以调整图像匹配的阈值(默认 0.8,可降低至 0.7)。

四、进阶技巧:多分支与状态机

现实中的自动化往往更复杂,比如:

  • 签到成功 → 关闭弹窗
  • 签到失败 → 重试或跳过
  • 网络错误 → 等待重连

你可以用嵌套循环全局变量实现状态机。例如,定义一个变量status,根据图像识别结果改变状态,然后分支到不同逻辑块。

示例逻辑

状态 = "等待签到"

循环:

如果 状态 == "等待签到":

查找 sign_btn.png

如果找到: 点击, 状态 = "等待确认"

否则: 等待 2 秒

如果 状态 == "等待确认":

查找 close_btn.png

如果找到: 点击, 状态 = "完成"

否则: 等待 1 秒

如果 状态 == "完成":

跳出循环

这种设计让脚本具备“思考”能力,能应对多种异常情况。

五、总结

AutoTiny 的键鼠录制只是起点,真正的自动化在于循环分支逻辑图像识别的结合。通过本文的实战,你学会了:

1. 用图像识别替代固定坐标,提升脚本鲁棒性

2. 用循环条件处理重复动作,避免死循环

3. 用条件分支处理不同结果,实现“智能判断”

下一步建议:尝试用 AutoTiny 自动化一个复杂的办公流程(如 Excel 数据处理、邮件发送),你会发现,只要逻辑清晰,全自动操作并非遥不可及。

如果你在实践中有任何问题,欢迎在评论区留言交流。自动化不是魔法,而是逻辑的艺术。

🔗 AutoTiny键鼠录制+图像识别:循环分支逻辑如何实现全自动操作?
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/19 9:37:13

启元发布全球首款可变形个人机器人 T1,“变形金刚”时代要来了?

站着是“人”,趴下是“狗”Transformer 这个词,曾代表大荧幕上的变形金刚,后成为大模型时代的技术底座,如今回归字面意思——一台会变形的机器人。7 月 14 日,上纬新材旗下个人机器人品牌启元机器人正式发布启元 T1&am…

作者头像 李华
网站建设 2026/7/19 9:35:49

服务器选型指南:从硬件配置到部署优化的10分钟实用教程

这次我们来看一个关于服务器选择的实用指南。无论你是要部署AI模型、搭建Web服务,还是运行数据库,选对服务器都是项目成功的第一步。本文会直接切入硬件规格、性能需求和成本考量,帮你快速判断哪种配置最适合你的场景。 我们先从最实际的问题…

作者头像 李华
网站建设 2026/7/19 9:32:36

空数据状态与引导:多维度 UI 提示设计

前言 在“海风日记“的回顾页中,当用户还没有日记数据时,会显示空数据状态引导用户去写日记。 本文将从源码出发,深入讲解回顾页的空数据 UI 设计。 一、回顾页空数据状态 1.1 源码 if (MOCK_DIARIES.length 0) {Column({ space: 12 }) …

作者头像 李华
网站建设 2026/7/19 9:32:21

终极ncmdump解密指南:3步实现网易云NCM音乐跨平台播放自由

终极ncmdump解密指南:3步实现网易云NCM音乐跨平台播放自由 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM加密文件无法在其他设备播放而烦恼吗?ncmdump作为一款开源免费的NCM格式解…

作者头像 李华
网站建设 2026/7/19 9:32:06

Android平台FreeType交叉编译与中文渲染优化实践

1. 为什么需要交叉编译FreeType到Android平台 在Android开发中处理中文显示是个经典难题。OpenCV等常用库原生不支持中文渲染,而系统自带的FreeType库又没有暴露完整接口。这就好比给你一台高性能相机,却不让你手动调焦距——功能受限让人抓狂。 我最近…

作者头像 李华