Python-GUI-Automatisierungsbibliothek zum Simulieren von Benutzerinteraktionen in Apps

Ich suche nach einer Python-Bibliothek, die bei Aufgaben zur Fensterautomatisierung helfen kann (entweder unter macOS oder Linux).

Mit Automatisierung meine ich, das Anwendungs-/Spielfenster zu finden, dessen Inhalt abzurufen und in der Lage zu sein, Maus- und Tastaturereignisse zu senden.

Hier ist der ähnliche Code: jBugman/minesweeper bei GitHub , der darauf abzielt, das Minesweeper-Spiel zu spielen, indem Benutzerinteraktionsereignisse simuliert werden.

Ich suche nach etwas Ähnlichem, aber in Form einer Bibliothek / eines Frameworks, das ich für ähnliche Zwecke verwenden kann (universellerer Weg). Kann mit Quartz oder anderen ähnlichen Bibliotheken arbeiten. Kompatibilität mit macOS wird bevorzugt, aber ich bin auch offen für Linux (X).

Möchten Sie Benutzereingaben nur simulieren oder auch das Ergebnis überprüfen? Wenn Sie zB einen Klick auf Datei/Öffnen simulieren, prüfen Sie dann, ob der Dateiauswahldialog erscheint?
Hauptsächlich, um eine Benutzereingabe (Maus/Tastatur) zu simulieren, wie das Testen von Automatisierungs-Apps oder das Spielen eines Spiels, also sollte das Überprüfen der Ergebnisse auch nett sein, aber ich bin offen für Vorschläge.
"Wenn Sie das Anwendungs- / Spielfenster finden, erhalten Sie den Inhalt davon", scheint die Überprüfung der Ausgabe zu implizieren ... Klingt, als würden Sie in dieser Frage nach etwas suchen, wie ich es bin
@Mawg Ja, wir suchen nach ähnlichen Dingen, aber Sie suchen nach einem Tool / einer Bibliothek in einer beliebigen Sprache für Linux, und ich suche nach einer Bibliothek, die speziell in Python integriert werden kann (entweder Python-Bibliothek oder Verwendung davon innerhalb von Python).
Mit Python wäre ich sehr zufrieden. Otoh, wenn wir etwas Nicht-Python finden, können wir einen Wrapper hinzufügen. Ich denke, dass Sie Ihre Suche erweitern müssen, da ich nichts zufriedenstellendes gefunden habe :-( Wenn ja, posten Sie bitte Details

Antworten (3)

Auf macOs gibt es pyatom / ATOMac . Es ermöglicht den Zugriff auf Texteigenschaften und sinnvolle Aktionen ohne direkten Zugriff auf die Tastatur. Natürlich müssen Sie Ihre App in den macOS-Einstellungen zur Liste der zugänglichen Apps hinzufügen . Mein Student hat ein Skript geschrieben, das einige Schritte in iTunes automatisiert . Das einzige Problem ist, dass flexible Wartezeiten nicht gut funktionieren, sodass er fest codierte Anrufe verwenden musste time.sleep.

Es gibt nicht so viele Open-Source-Tools, um auf Texteigenschaften zuzugreifen. Unter Linux ist es pyatspi2, obwohl es nicht so einfach zu verwenden ist. LDTP ist vielleicht einfacher, aber es scheint nicht beliebt zu sein. Es hat API-kompatible Windows- und macOs-freundliche Projekte (Pyatom ist dieses auf macOs). Aber ich würde sagen, dass der Platz für das beliebte plattformübergreifende textbasierte Automatisierungstool im Open-Source-Segment vakant ist.

PS: Ich behalte eine gewisse Bewertung von GUI-Automatisierungstools für alle Desktop-Betriebssysteme bei, einschließlich der beliebtesten Maus-/Tastatur-basierten Tools und bildbasierten Bibliotheken.

Es gibt Sikuli .

SikuliX automatisiert alles, was Sie auf dem Bildschirm Ihres Desktop-Computers sehen, auf dem Windows, Mac oder Linux/Unix ausgeführt wird. Es verwendet eine von OpenCV unterstützte Bilderkennung, um GUI-Komponenten zu identifizieren und zu steuern. Dies ist praktisch, wenn es keinen einfachen Zugriff auf die Interna einer GUI oder den Quellcode der Anwendung oder Webseite gibt, auf die Sie reagieren möchten.

Es unterstützt die Python-Sprachebene 2.7 (unterstützt von Jython).

Es gibt nur wenige Python-Bibliotheken für die Automatisierung von Benutzereingaben, wie zum Beispiel:

  • PyAutoGUI (funktioniert unter Windows, macOS und Linux)

    Ein Python-Modul zur programmgesteuerten Steuerung von Maus und Tastatur.

  • PYAHK AutoHotKey (AHK ist normalerweise für Windows, kann aber mit Wine verwendet werden )

    AutoHotKey ist ein leistungsstarker Aufgabenautomat mit einer schrecklichen integrierten Skriptsprache. Ermöglicht den Datenaustausch zwischen beiden Skript-Engines und die Ausführung von AHK-Befehlen von Python.

  • Python-uinput (GPLv3+)

    Pythonic-API für das Linux-uinput-Kernelmodul. Es ermöglicht das Anhängen von Userspace-Gerätetreibern an den Kernel. In der Praxis macht es Python-uinput kinderleicht, virtuelle Joysticks, Tastaturen und Mäuse zum programmgesteuerten Generieren beliebiger Eingabeereignisse zu erstellen.


Es gibt auch einige Befehlszeilentools, die von Python aus ausgeführt werden können, um mit GUI-Anwendungen zu interagieren, wie z xdotool. Es kann zur Steuerung von Maus und Tastatur verwendet werden und unterstützt auch Window-Manager-Aktionen wie Verschieben, Aktivieren und andere Aktionen in Fenstern.

Informationen zu allgemeinen Automatisierungstools für Linux finden Sie auch unter: GUI-Scipting für Linux .

Siehe auch: