SikuliX 主要用来做什么?
更新时间
SikuliX 的核心用途是自动化计算机屏幕上可见的内容。它通过识别屏幕上的图像来定位并操作界面元素,而不是依赖控件名称或内部接口。官网首页用一句话概括了它的定位:“Automate what you see on a computer monitor”。适合需要操作那些难以用常规自动化工具抓取控件的图形界面,例如远程桌面、老旧客户端软件或游戏窗口。
它基于什么思路工作
SikuliX 的工作方式可以理解为“看图找位置,再执行动作”:
- 准备图像:截取目标按钮、图标或区域,保存为图片文件。
- 屏幕识别:运行时在屏幕上搜索与图片匹配的区域。
- 执行操作:对找到的位置执行点击、输入、拖拽等动作。
这意味着自动化的前提是目标在屏幕上“看起来”稳定。如果界面主题、分辨率或缩放比例变化,匹配可能失败,需要重新截图或调整匹配参数。
适合与不适合的场景
| 场景 | 是否适合 | 原因 |
|---|---|---|
| 远程桌面、虚拟机内的界面操作 | 适合 | 控件难以直接访问,但屏幕可见 |
| 老旧桌面客户端、无接口的第三方软件 | 适合 | 只能通过视觉方式操作 |
| 界面外观稳定的重复点击任务 | 适合 | 图像匹配可靠,维护成本低 |
| 界面频繁改版或动态渲染 | 不太适合 | 图像需反复更新,稳定性差 |
| 需要读取结构化数据或调用 API | 不适合 | 它不是接口工具,应优先用接口方案 |
使用前需要知道的变化
根据官网首页信息,原作者 RaiMan 已停止开发,页面提到后续方向为 “Oculix”,并引导访问者查看相关说明。这意味着:
- 现有文档和 GitHub 源码仍可作为参考。
- 新项目选型时,应把“维护活跃度”作为一个评估条件,而不是默认它持续更新。
- 若只是短期或内部使用,现有能力通常仍可满足需求。
一个具体例子
例如需要每天从某个只有桌面客户端的系统导出报表:先用 SikuliX 截取“导出”按钮和保存对话框的输入框,脚本运行时识别按钮位置并点击,再在对话框中输入固定路径完成保存。验证方法是先手动跑一遍流程,确认每一步截图在当前分辨率和缩放下都能稳定匹配,再固化为脚本。常见卡点是窗口位置偏移或加载延迟,可在动作之间加入等待和重试。