SikuliX in Python: Das ultimative Handbuch zur visuellen GUI-Automation
Einführung in SikuliX
Die Automatisierung von Benutzeroberflächen, besonders wenn keine API verfügbar ist, erfordert unkonventionelle Ansätze. Die visuelle Erkennung von Elementen ist eine der effektivsten Methoden, um solche Aufgaben zu lösen. SikuliX ist ein einzigartiges Automatisierungstool, das GUI-Anwendungen steuert, indem es sich auf visuelle Vorlagen (Screenshots von Oberflächenelementen) stützt – und nicht auf die DOM-Struktur oder verfügbare APIs.
SikuliX wurde ursprünglich in Java entwickelt, lässt sich aber erfolgreich mit Python über Jython oder externe Aufrufe via subprocess nutzen. Die Bibliothek bietet leistungsstarke Funktionen für die visuelle Suche, das Klicken, Warten und Interagieren mit beliebigen Oberflächenelementen, die als Bilder vorliegen.
Was ist SikuliX und wie funktioniert es?
SikuliX ist eine Open-Source-Automatisierungsbibliothek, die Bilderkennungstechnologie nutzt, um mit Elementen der grafischen Benutzeroberfläche zu interagieren. Im Gegensatz zu traditionellen Automatisierungstools, die auf Element-Selektoren oder APIs angewiesen sind, arbeitet SikuliX auf Pixelebene des Bildschirms.
Die wichtigsten Funktionen von SikuliX:
- Visuelle Bilderkennung: Nutzt OpenCV, um Bilder auf dem Bildschirm zu finden
- Plattformunabhängig: Läuft auf Windows, macOS und Linux
- Technologieunabhängig: Kann jede Anwendung automatisieren, einschließlich Desktop-, Web- und Mobilanwendungen
- Einfach zu bedienen: Intuitive API für einen schnellen Einstieg
Installation und Einrichtung von SikuliX
Systemvoraussetzungen
Für die Arbeit mit SikuliX benötigen Sie:
- Java 8 oder eine neuere Version
- Python 2.7 oder 3.x (für die Integration)
- Ausreichend Arbeitsspeicher für die Bildverarbeitung (mindestens 2 GB empfohlen)
Installationsprozess
SikuliX wird als Java-Anwendung verteilt und kann nicht über pip installiert werden. So installieren Sie es:
- Laden Sie die neueste Version von sikulixide.jar von der offiziellen Website sikulix.com herunter
- Stellen Sie sicher, dass Java korrekt installiert ist
- Konfigurieren Sie die Integration mit Python (über Jython oder subprocess)
SikuliX aus Python starten
import subprocess
import os
# SikuliX IDE starten
subprocess.run(["java", "-jar", "sikulixide-2.0.5.jar"])
# Ein fertiges Skript ausführen
subprocess.run(["java", "-jar", "sikulix.jar", "-r", "meinskript.sikuli"])
Architektur und grundlegende Konzepte
Das Objektmodell von SikuliX
SikuliX basiert auf mehreren Schlüsselkonzepten:
Screen (Bildschirm) – Stellt den gesamten Bildschirm oder einen bestimmten Monitor dar. Dies ist das Hauptobjekt für die Interaktion mit der Oberfläche.
Region (Region) – Ein rechteckiger Bereich des Bildschirms, in dem Such- und Interaktionsoperationen durchgeführt werden. Die Verwendung von Regionen beschleunigt die Skriptausführung erheblich.
Pattern (Vorlage) – Ein Bildobjekt mit zusätzlichen Parametern wie der Übereinstimmungsgenauigkeit und dem Klickversatz.
Match (Übereinstimmung) – Das Ergebnis einer Bildsuche, das die Koordinaten und den Grad der Übereinstimmung enthält.
Funktionsweise der Bilderkennung
SikuliX verwendet Algorithmen des maschinellen Sehens, um Bildvorlagen mit dem Bildschirminhalt abzugleichen. Der Prozess umfasst:
- Erstellen eines Screenshots des Bildschirms oder einer Region
- Vergleich der Vorlage mit verschiedenen Bereichen des Screenshots
- Berechnung des Ähnlichkeitskoeffizienten
- Rückgabe der Koordinaten der besten Übereinstimmung
Integration mit Python
Nutzung über Jython
Jython ermöglicht die Ausführung von Python-Code direkt in der JVM und bietet so direkten Zugriff auf die Java-Bibliotheken von SikuliX:
Auch in der Bibliothek
ORM für Swift (iOS/macOS): Vergleich und Anwendungsbeispiele
Caching in TypeScript: Redis, node-cache und andere Tools
Geolokalisierung und Karten in C++: Überblick über Bibliotheken und Werkzeuge
JUnit 5 für Java: Vollständiger Leitfaden mit Beispielen
E-Mail-Versand in C# (.NET) mit SmtpClient und MailKit
Empfehlungen