29

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?

halloleo
  • 9,216
  • 13
  • 64
  • 122
  • If you run your scripts in a batch (Test Suite), then your problem #1 is negated. JVM load only occurs at the start of the tests. – Sumit Bisht Aug 03 '12 at 11:57
  • Good point, but no, it's not for *test* automation, I'm rather doing everyday dev automation: e.g. develop UI plugins for a (non-scriptable) app, so to try the plugin I have to start up the app enter some test credentials, wait 20 sec to load, click another button to get to the plugin... – halloleo Aug 04 '12 at 23:32
  • 1
    There are lightweight tools like AutoIt, or full fledged tools like Ranorex or Teleric, but are windows specific. Also, you would need to use a test management tool to manage multiple sikuli scripts - that run sequentially and can be reused/looped by passing parameters. So effectively, it will automate your everyday tasks. – Sumit Bisht Aug 06 '12 at 05:12
  • 3
    My experience is that Sikuli in fact is very good maintained. And new release is scheduled at the start of 2013. – anatoly techtonik Dec 05 '12 at 21:17
  • Eggplant Functional may meet your requirements. I'm currently evaluating it, and it has similar capabilities to Sikuli, anit it looks far more robust. – Roy Tinker Mar 11 '14 at 17:49
  • 4
    [SikuliX](http://www.sikulix.com/) seems to be the replacement for the now abandoned Sikuli. – Jonas Byström Apr 20 '16 at 15:08
  • 2
    It is definitely worth noting that all three answers to this question are people promoting their own projects. I know that doesn't make them bad alternatives by any means. – Shadoninja Apr 27 '16 at 16:50
  • Try also project gehrmann/PyGUIBot: command line tool + GUI interface for such scenarios. Some companies / scientists using it for GUI-tests and scripting. – Vladyslav Savchenko Dec 08 '20 at 21:34

2 Answers2

6

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("my.email@domain.com", 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("my.email@domain.com", 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.

Tytus
  • 640
  • 6
  • 5
  • 57
    FYI differently from Sikuli it's paid and closed source. – Cristiano Fontes Nov 07 '12 at 13:23
  • 4
    I'm confused - your points don't seem to stand up to me; feature sets seem broadly the same as sikuli (you can also make sikuli scripts work without screenshots by using names/keyboard shortcuts). You can version control the sikuli folders (screenshots included) though, version control system hardly choke on a few small images. I can't really see why someone should use for something that's a paid-for copy of sikuli other than support – pacifist Nov 07 '14 at 02:39
  • 1
    "Easier to use" is up for debate... I wrote a mini-framework for making WoW bots in a weekend using Sikuli(just to see if I could). People just need to go over the documentation. It's one of the simplest "libraries" I have ever used due to the excellent documentation. Once you read it, the world is your oyster. – RattleyCooper Mar 31 '16 at 18:45
  • Domain changed? – Smart Manoj Jan 31 '21 at 13:00
2

Are you looking to automate WinForms applications or WPF applications? If you're looking at WPF I can recommend Telerik's free Testing Framework. (Disclosure: I am the Test Studio evangelist for Telerik.)

The testing framework (or the full Test Studio product) work very well with WPF as the scripts/tests are element based, not positional.

Jim Holmes
  • 1,680
  • 8
  • 10