Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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

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?

like image 924
halloleo Avatar asked Jul 16 '12 02:07

halloleo


People also ask

What is the difference between Sikuli and SikuliX?

SikuliX uses Python as the scripting language. Python scripting is supported by the Sikuli-IDE. Sikuli's features are also available in Java programs. Sikuli is a visual approach to search and automate graphical user interface using screenshots.

Can we automate Windows application?

Users can automate many Windows desktop applications with a no-code, point-and-click approach. Users can easily record actions on a Windows desktop and then turn manual, repetitive steps into automated workflows.

Is Sikuli a tool?

Definition: Sikuli is a powerful and open source tool for test automation. It can automate anything which is displayed on the screen. It identifies the objects by using image recognition and control GUI (Graphical User Interface) components.


2 Answers

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.

like image 70
Tytus Avatar answered Nov 09 '22 12:11

Tytus


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.

like image 29
Jim Holmes Avatar answered Nov 09 '22 13:11

Jim Holmes