Zusammenfassung der Tools zum Betreiben der Windows-Benutzeroberfläche mit Python

Es gibt berühmte Orte wie Selenium im Web, aber ich habe den Eindruck, dass es kein De-facto-Tool zum Bedienen der Windows-GUI gibt.

In Wirklichkeit gibt es viele Möglichkeiten, deshalb werde ich sie hier zusammenfassen.

Tools für die Arbeit mit Windows GUI in Python

ahk

ahk · PyPI

AutoHotkey Wrapper für Python.

Unten sehen Sie ein Beispiel von PyPI.

from ahk import AHK
from ahk.window import Window

ahk = AHK()

win = ahk.active_window  # Get the active window
win = ahk.win_get(title='Untitled - Notepad')  # by title
win = list(ahk.windows())  # list of all windows
win = Window(ahk, ahk_id='0xabc123')  # by ahk_id
win = Window.from_mouse_position(ahk)  # the window under the mouse cursor
win = Window.from_pid('20366')  # by process ID

Sie können das Ziel anhand des Fenstertitels oder der ID angeben.

PyAutoIt

PyAutoIt · PyPI

Dies ist ein Wrapper für AutoIt für Python.

Sie können es ähnlich wie AutoHotKey bedienen. (* AutoHotKey selbst ist ein Tool, das ursprünglich von AutoIt getrennt war.)

autoit

autoit · PyPI

Um ehrlich zu sein, bin ich mir nicht sicher, ob es mit AutoIt zusammenhängt, aber es scheint, dass ich mein Bestes tue, um es selbst zu implementieren.

SikuliX

RaiMan's SikuliX

Ich denke, SikuliX ist ziemlich berühmt. Es wird mit einer IDE geliefert, mit der Sie Code nur auf Sikuli schreiben können. Es gibt jedoch auch Muster, die Sie laden und als Python-Modul verwenden können.

pynput

moses-palmer/pynput: Sends virtual input commands

Es ist ein Tool, das die Maus- und Tastaturbedienung automatisieren kann, und es scheint, dass es nicht möglich ist, Elemente auf dem Bildschirm zu erfassen.

pyautogui

asweigart/pyautogui: A cross-platform GUI automation Python module for human beings. Used to programmatically control the mouse & keyboard.

Maus- und Tastaturbedienung können auch hier automatisiert werden, aber Multi-Plattform = Windows, Mac, Linux können bedient werden.

Pywinauto

Pywinauto - pywinauto

Im Vergleich zu anderen Modulen des gleichen Typs wirkt es aufgrund der großen Anzahl von Commits lebhaft.

Das offizielle Beispiel finden Sie weiter unten.

from pywinauto import Desktop, Application

Application().start('explorer.exe "C:\\Program Files"')

# connect to another process spawned by explorer.exe
# Note: make sure the script is running as Administrator!
app = Application(backend="uia").connect(path="explorer.exe", title="Program Files")

app.ProgramFiles.set_focus()
common_files = app.ProgramFiles.ItemsView.get_item('Common Files')
common_files.right_click_input()
app.ContextMenu.Properties.invoke()

# this dialog is open in another process (Desktop object doesn't rely on any process id)
Properties = Desktop(backend='uia').Common_Files_Properties
Properties.print_control_identifiers()
Properties.Cancel.click()
Properties.wait_not('visible') # make sure the dialog is closed

Die Teile wie ProgramFiles und ItemsView sind gut lesbar und fühlen sich gut an.

WinAppDriver

microsoft/WinAppDriver: Windows Application Driver

Es ist ein Tool von Microsoft, das die Windows-Benutzeroberfläche wie Selenium bedienen kann.

Selbst wenn Sie sich den Beispielcode ansehen, können Sie die "Selenität" sehen. Es ist die Bedienung des Windows-Rechners.

def test_combination(self):
        self.driver.find_element_by_name("Seven").click()
        self.driver.find_element_by_name("Multiply by").click()
        self.driver.find_element_by_name("Nine").click()
        self.driver.find_element_by_name("Plus").click()
        self.driver.find_element_by_name("One").click()
        self.driver.find_element_by_name("Equals").click()
        self.driver.find_element_by_name("Divide by").click()
        self.driver.find_element_by_name("Eight").click()
        self.driver.find_element_by_name("Equals").click()
        self.assertEqual(self.getresults(),"8")

Die Operation in der japanischen Umgebung ist jedoch nicht so gut und es ist schwierig, sie zu lösen. ..

Andere

Vielleicht ist es nicht gut genug, Pat zu sehen ...? Ich dachte, aber ich habe es nur für den Fall aufgelistet

Recommended Posts

Zusammenfassung der Tools zum Betreiben der Windows-Benutzeroberfläche mit Python
[Für Anfänger] Zusammenfassung der Standardeingabe in Python (mit Erklärung)
Zusammenfassung verschiedener for-Anweisungen in Python
Zusammenfassung nützlicher Techniken von Scrapy in Python
GUI-Automatisierung mit Python x Windows App Driver
Django mit Python Tools 2.2 für Visual Studio (PTVS 2.2)
Bildverarbeitung mit Python Environment Setup für Windows
[Python] Zusammenfassung der S3-Dateivorgänge mit boto3
Zusammenfassung häufig verwendeter Python-Arrays (für mich)
Python ab Windows 7
Refactoring-Tools, die mit Python verwendet werden können
Zusammenfassung der Python-Argumente
Installieren Sie Python (für Windows)
Zusammenfassung der Tools, die zum Analysieren von Daten in Python benötigt werden
Zusammenfassung der Vorverarbeitungsmethoden für Python-Anfänger (Pandas-Datenrahmen)
U ^ 2-Net zum Erkennen von Objekten von Interesse (Windows10, Python3.6)
PIL in Python unter Windows8 (für Google App Engine)
Erstellen von BINGO "Web Tools" mit Python (Inhaltsverzeichnis)
Zusammenfassung des grundlegenden Ablaufs des maschinellen Lernens mit Python
[Windows] [Python] Kamerakalibrierung des Fischaugenobjektivs mit OpenCV
Vorsichtsmaßnahmen bei der Berechnung mit Zeichenfolge für TmeStampType von PySpark
Python mit VSCode (Windows 10)
Führen Sie Python mit PyCharm aus (Windows)
Zusammenfassung der Python-Dateivorgänge
Zusammenfassung der Python3-Listenoperationen
Installationsverfahren für Python 3.6 [für Windows]
[GUI in Python] PyQt5-Layout-Management-
[GUI mit Python] PyQt5-Vorbereitung-
Zeitsynchronisation (Windows) mit Python
Installieren Sie dlib für Python (Windows)
[GUI mit Python] PyQt5 -Paint-
[Python] GUI zum Einfügen des TeX-Formats in PowerPoint mit 2 Klicks [PowerPoint]
Simulieren Sie mit Python verspätete Schäden für kriminelle Kinderbetreuungskosten
Zusammenfassung der Unterstützung von Hash-Operationen (Dictionary) für Ruby und Python
Erstellen Sie Python3 für Windows 10 unter ARM mit Visual Studio 2019 (x86) unter Windows 10 unter ARM
Grundlegende Zusammenfassung der Datenoperationen mit Python Pandas - Erste Hälfte: Datenerstellung und -operationen
Drehen Sie ein Array von Zeichenfolgen mit einer for-Anweisung (Python3).
Erstellen Sie eine Windows Python-Ausführungsumgebung mit VScode + Remote WSL
Gesichtserkennung mit YOLO Face (Windows10, Python3.6)
Eine kurze Zusammenfassung von Graphviz in Python (nur für Mac erklärt)
[GUI mit Python] PyQt5 -Widget II-
Lassen Sie uns eine GUI mit Python erstellen.
Erstellen einer Windows 7-Umgebung für eine Einführung in das maschinelle Lernen mit Python
Achten Sie beim Drucken von Japanisch mit Python 3 auf LANG für UnicodeEncodeError
Eine kurze Zusammenfassung der Python-Sammlung
Erste Schritte mit Python für PHPer-Klassen
[GUI mit Python] PyQt5-Der erste Schritt-
Erste Schritte mit Python Grundlagen von Python
Ich habe viele Dateien für die RDP-Verbindung mit Python erstellt
Die Geschichte, einen Standardtreiber für db mit Python zu erstellen.
[GUI in Python] PyQt5-Drag & Drop-
Lebensspiel mit Python! (Conways Spiel des Lebens)
Erstellen Sie mlpy mit python3.3 (64bit) (Windows 64bit)
10 Funktionen von "Sprache mit Batterie" Python
Installation von Python, SciPy, matplotlib (Windows)
[Lass uns mit Python spielen] Ziel ist die automatische Satzgenerierung ~ Abschluss der automatischen Satzgenerierung ~
Verwenden Sie die Windows 10-Sprachsynthese mit Python
4. Nacht der Schleife mit für
Implementierung der Dyxtra-Methode durch Python
[GUI mit Python] PyQt5 -Custom Widget-
Erste Schritte mit Python3