What better tool than Sikuli to use for screen automation on Windows 7 (or preferably multi-platform)

halloleo picture halloleo · Jul 16, 2012 · Viewed 47.9k times · Source

I'm using Sikuli for Screen automation. i.e for clicking of GUI elements according to their appearance on the screen. This works all right, but Sikuli has one major disadvantage for me:

  • Slow start-up for each script (because the whole JVM is loaded each time).

Further more on Sikuli is not much development happening since last year, so I am looking for a replacement automation tool. The big ticket I need is screen awareness: The tool has to "look" for certain UI elements on the screen, than move the mouse there and issue a click.

Any suggestion for a faster and maybe better maintained tool than Sikuli?

Answer

Tytus picture Tytus · Oct 8, 2012

If you want to automate anything under Windows, I would recommend you Automa - new lightweight GUI automation tool. It simply "finds" UI elements - all you need to do is to provide their names as human user would see them. And it's actually easier to use than Sikuli - you don't have take any screenshots. For instance, if you want to automatically sign in to Windows Live Messenger, you can run the following script:

start("messenger")
write("[email protected]", into="Email address")
write("secret", into="Password")
click("Sign in")

or, similarly, in order to type in credentials and automatically log in to Facebook, all you need to do is execute the following commands:

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

The tool works on most Windows applications (including web browsers), no matter what technology they are written in. It's written in Python and can be used from within any Python application through importable api library.

About Automa vs Sikuli: Automa is as high-level as Sikuli, but does not require screenshots. This has several advantages:

  • Automa scripts are easier to store in a version control system.
  • Automa scripts being purely text based makes them easier to maintain: Imagine a label changing somewhere. This label might appear in several Sikuli screenshots, which you will then have to re-take. With Automa, all you have to do is a simple search-and-replace across files.
  • It is more stable with respect to changes in the user interface - imagine a colour changing or a button moving by just a few pixels.
  • Other nice features such as being able to write the scripts/tests before the application exists - you can always write a script saying click "here", type this, click "there", already from the spec of a feature/program. With screenshots that isn't possible.

Disclosure: I work on Automa.