Sikuli: Programmieren mit Screenshots

Thomas J. Weiss

Bildschirmfoto 2010-02-03 um 16.13.00
Arbeiten, nicht shoppen! Unser Mac protestiert lauthals, wenn darauf jemand die Internetseite eBay de öffnet – das haben wir ihm beigebracht, exemplarisch, versteht sich. Er durchsucht den Bildschirm laufend nach dem eBay-Logo und erkennt, sobald es irgendwo auftaucht. Hinter diesem Anwendungsbeispiel steckt die spektakuläre Skriptsprache Sikuli, die neben einfachen Befehlen auch Screenshots verarbeitet. Wie teilen Sie einem Kollegen im Chat mit, welches Icon er auf seinem Mac anklicken muss?

Entweder sie beschreiben ihm die Lage und das Aussehen umständlich in Worten – oder aber sie schicken ihm einfach einen Screenshot des Bildchens. Mit ihrem Mac können sie nun genauso einfach kommunizieren: Das Sikuli-Projekt stellt eine Skriptsprache zur Verfügung, die neben einfachen Befehlen auch Bildschirmfotos erkennt.

Ein Projekt des MIT

Bildschirmfoto 2010-02-03 um 16.11.05
Sikuli befindet sich derzeit noch in der Betaphase und geht aus einem Forschungsprojekt des Masschusetts Institute of Technology (MIT) hervor. Mit der Skriptsprache lassen sich regelmäßige Eingaben automatisieren, ähnlich wie mit Automator oder AppleScript.
Ein Skript besteht aus einer Reihe von Befehlen und Screenshots, anhand dessen das Programm Orte auf dem Bildschirm identifiziert, die es beispielsweise anklicken soll. Sikuli kann auch Webformulare ausfüllen, Icons verschieben, Schieberegler betätigen und vieles mehr.

Die benutzte Skriptsprache heißt “Jython” und basiert auf Python und einer Java-VM. Sikuli lässt sich sowohl auf dem Mac als auch unter Windows und Linux benutzen und ist kostenlos.

Zur Tat

Wir wollen ein Skript erstellen, das den Inhalt des Bildschirms regelmäßig nach einem bestimmten Bild durchsucht, in unserem Fall dem eBay-Logo. Taucht es auf, soll ein Pop-up aufgehen, einen definierten Text anzeigen und eine E-Mail an den Besitzer des Macs verschicken.
Zunächst verschiebt man das Programm in den dafür vorgesehenen Ordern. Nach dem Start geben wir die Skriptbefehle ein:

while not find():
sleep(1)
popup(“Was fällt Dir ein?”)

In die erste Klammer nach while not find fügen wir das gewünschte Bild ein, Screenshots erstellt Sikuli mit der Tastenkombination Befehl + Umschalt + 2. Danach können wir das Skript mit einem Klick auf das Abspiel-Symbol in der Sikuli-Menüleiste bereits starten. Im folgenden Beispiel ruft es zusätzlich Mail auf und verschickt eine Warnung.

Bildschirmfoto 2010-02-03 um 16.12.11

Mit Sikuli lassen sich bereits nützliche Aufgaben ausführen, auf der Seite des Projektes finden sich eine Reihe interessanter Beispiele. Wir wünschen viel Spaß beim Ausprobieren und empfehlen zum Abschluss folgenden Clip:

Project Sikuli – Documentation
Sikuli Script Commands for Jython

Weitere Themen: Microsoft Windows, Microsoft