29

我正在使用Sikuli进行屏幕自动化。即根据它们在屏幕上的外观单击 GUI 元素。这很好用,但 Sikuli 对我来说有一个主要缺点:

  • 每个脚本启动缓慢(因为每次都会加载整个 JVM)。

自去年以来,关于 Sikuli 的更多信息并没有发生太大的发展,所以我正在寻找替代自动化工具。我需要的大票是屏幕感知:该工具必须“寻找”屏幕上的某些 UI 元素,而不是将鼠标移到那里并发出点击。

有什么比 Sikuli 更快、维护得更好的工具的建议吗?

4

2 回答 2

6

如果你想在 Windows 下自动化任何东西,我会推荐你​​ Automa - 新的轻量级 GUI 自动化工具。它只是“找到” UI 元素——您需要做的就是提供它们的名称,就像人类用户看到的那样。而且它实际上比 Sikuli 更容易使用 - 你没有截取任何屏幕截图。例如,如果您想自动登录 Windows Live Messenger,您可以运行以下脚本:

start("messenger")
write("my.email@domain.com", into="Email address")
write("secret", into="Password")
click("Sign in")

或者,类似地,为了输入凭据并自动登录 Facebook,您只需执行以下命令:

start("firefox")
write("facebook.com", into="Location")
press(ENTER)
write("my.email@domain.com", into="Email or Phone")
write("secret", into="Password")
click("Log in")

该工具适用于大多数 Windows 应用程序(包括 Web 浏览器),无论它们是用什么技术编写的。它是用 Python 编写的,可以通过可导入的 api 库在任何 Python 应用程序中使用。

关于 Automa vs Sikuli:Automa 和 Sikuli 一样高级,但不需要截图。这有几个优点:

  • Automa 脚本更容易存储在版本控制系统中。
  • 纯文本的 Automa 脚本使它们更易于维护:想象一下标签在某处发生了变化。这个标签可能会出现在几个 Sikuli 屏幕截图中,然后您必须重新拍摄。使用 Automa,您所要做的就是跨文件进行简单的搜索和替换。
  • 它在用户界面的变化方面更加稳定 - 想象一下颜色变化或按钮仅移动几个像素。
  • 其他不错的功能,例如能够在应用程序存在之前编写脚本/测试 - 您总是可以编写一个脚本说单击“这里”,输入这个,单击“那里”,已经来自功能/程序的规范。使用不可能的屏幕截图。

披露:我在Automa工作。

于 2012-10-08T20:05:06.547 回答
2

您是否希望自动化 WinForms 应用程序或 WPF 应用程序?如果您正在查看 WPF,我可以推荐Telerik 的免费测试框架。(披露:我是 Telerik 的测试工作室布道者。)

测试框架(或完整的 Test Studio 产品)与 WPF 配合得非常好,因为脚本/测试是基于元素的,而不是位置的。

于 2012-07-17T16:38:26.717 回答