SikuliX 主要用来做什么?

更新时间

SikuliX 的核心用途是自动化计算机屏幕上可见的内容。它通过识别屏幕上的图像来定位并操作界面元素,而不是依赖控件名称或内部接口。官网首页用一句话概括了它的定位:“Automate what you see on a computer monitor”。适合需要操作那些难以用常规自动化工具抓取控件的图形界面,例如远程桌面、老旧客户端软件或游戏窗口。

它基于什么思路工作

SikuliX 的工作方式可以理解为“看图找位置,再执行动作”:

  1. 准备图像:截取目标按钮、图标或区域,保存为图片文件。
  2. 屏幕识别:运行时在屏幕上搜索与图片匹配的区域。
  3. 执行操作:对找到的位置执行点击、输入、拖拽等动作。

这意味着自动化的前提是目标在屏幕上“看起来”稳定。如果界面主题、分辨率或缩放比例变化,匹配可能失败,需要重新截图或调整匹配参数。

适合与不适合的场景

场景 是否适合 原因
远程桌面、虚拟机内的界面操作 适合 控件难以直接访问,但屏幕可见
老旧桌面客户端、无接口的第三方软件 适合 只能通过视觉方式操作
界面外观稳定的重复点击任务 适合 图像匹配可靠,维护成本低
界面频繁改版或动态渲染 不太适合 图像需反复更新,稳定性差
需要读取结构化数据或调用 API 不适合 它不是接口工具,应优先用接口方案

使用前需要知道的变化

根据官网首页信息,原作者 RaiMan 已停止开发,页面提到后续方向为 “Oculix”,并引导访问者查看相关说明。这意味着:

  • 现有文档和 GitHub 源码仍可作为参考。
  • 新项目选型时,应把“维护活跃度”作为一个评估条件,而不是默认它持续更新。
  • 若只是短期或内部使用,现有能力通常仍可满足需求。

一个具体例子

例如需要每天从某个只有桌面客户端的系统导出报表:先用 SikuliX 截取“导出”按钮和保存对话框的输入框,脚本运行时识别按钮位置并点击,再在对话框中输入固定路径完成保存。验证方法是先手动跑一遍流程,确认每一步截图在当前分辨率和缩放下都能稳定匹配,再固化为脚本。常见卡点是窗口位置偏移或加载延迟,可在动作之间加入等待和重试。