GUI -Automatisierung mit Pyautogui, Python

GUI -Automatisierung mit Pyautogui, Python
Pyautogui ist ein Automatisierungsmodul von Python zur Steuerung von Tastatur- und Mausfunktionen über das Programm. Dieses Modul hat fast alle Funktionen, die von Tastatur und Maus ausgeführt werden können. Wir können diese Funktionen verwenden, um Maus- und Tastaturaktionen zu automatisieren.

Installation von Pyautogui

Vor Verwendung von Funktionen von Pyautogui Modul müssen es installieren. Führen Sie zum Installieren dieses Moduls den folgenden Befehl im Terminal aus.

$ pip Installieren Sie Pyautogui

ODER

$ pip3 install Pyautogui

Jetzt Pyautogui ist bereit zu verwenden.

Auflösung der Anzeige erhalten

Vor der Automatisierung von Mausaktionen ist es eine gute Praxis, die Auflösung des Displays zu kennen. Wir können die Auflösung des Displays mithilfe verwenden .Größe() Methode von

Pyautogui. Siehe unten und erhalten Sie die Auflösung des Bildschirms in Form von "Breite x Höhe":

Python 2.7.15+ (Standard, 7. Oktober 2019, 17:39:04)
[GCC 7.4.0] auf Linux2

Geben Sie "Hilfe", "Copyright", "Credits" oder "Lizenz" für weitere Informationen ein.

>>> Pyautogui importieren
>>> Breite, Höhe = Pyautogui.Größe()
>>> drucken (Breite)
1366
>>> drucken (Höhe)
768

Es bedeutet, dass wir 1366 Pixel in horizontaler Anzeigerichtung und 768 Pixel in vertikaler Anzeigerichtung haben.

Bewegen der Maus aus Display

Wir kennen also die Lösung unserer Anzeige. Jetzt können wir die Maus überall auf der Anzeige innerhalb der Auflösungsgrenzen der Anzeige bewegen. Wir können die Maus verwenden .ziehen nach() Methode von Pyautogui. Beispiel unten der Maus in 2 Sekunden in 2 Sekunden (100.100) Position

>>> Pyautogui importieren
>>> Pyautogui.MoveTo (100.100, Dauer = 2)

Wir haben drei Argumente an übergeben .moveTo () Methode. Die ersten beiden Argumente sind obligatorisch und zeigen die Position des Ziels, aber das dritte Argument ist nicht obligatorisch. Wenn wir das dritte Argument nicht übergeben, wechselt die Maus innerhalb kürzester Zeit zum Ziel.

Klicken, Scrollen und Ziehen der Maus klicken

Pyautogui bietet einige Methoden zur Kontrolle von Mausaktionen. Wir können mit verschiedenen Methoden auf die Maus klicken, scrollen und ziehen.

Klicken auf Aktion der Maus können mithilfe von Mitarbeitern durchgeführt werden .Click () Methode. Verschieben Sie vor dem Klicken die Maus in das erforderliche Pixel und verwenden Sie und verwenden .Klicken Sie auf () Methode zum Klicken. Im Folgenden finden Sie das Beispiel, um die Klickaktion von Maus durchzuführen. Beispiel unten wird die Maus auf (300.201) Pixel verschieben und auf die Maus klicken.

>>> Pyautogui importieren
>>> Pyautogui.MoveTo (300.201)
>>> Pyautogui.klicken()

Sie können auf die Maus doppelt klicken .Doppelklick() Methode.

>>> Pyautogui.MoveTo (300.201)
>>> Pyautogui.Doppelklick()

Pyautogui bietet eine Methode .scrollen() um die Maus nach oben oder unten zu scrollen. Diese Methode nimmt eine Ganzzahl als Argument an und scrollt dann je nach Ganzzahl nach oben oder unten. Wenn Sie eine positive Ganzzahl bestehen, scrollen Sie nach oben und für eine negative Ganzzahl scrollen Sie nach unten. Wie viel wird es scrollen? Es hängt vom Wert der Ganzzahl ab.

>>> Pyautogui importieren
>>> Pyautogui.Schriftrolle (20)
>>> Pyautogui.scrollen (-20)

Im obigen Beispiel scrollt die Maus zuerst 20 Einheiten nach oben und scrollt dann 20 Einheiten nach unten.

Ziehensbetrieb von Maus kann auch verwendet werden .hin ziehen() Methode des Pyautogui -Moduls. Ziehen bedeutet, die Maus zu bewegen, während Sie eine der Maustasten drücken. Diese Methode nimmt drei Argumente auf.

Um den Zoging -Betrieb zu sehen, öffnen Sie die Farbe, maximieren Sie das Fenster, wählen Sie den Bleistift und führen Sie die folgenden Befehle in die interaktive Shell aus. Der Code verschiebt die Maus in 2 Sekunden auf (138.229) Pixel und dann in 2 Sekunden auch in 2 Sekunden lang die Maus von dem aktuellen Pixel zum erforderlichen Pixel.

>>> Pyautogui importieren
>>> Pyautogui.MoveTo (138, 229, Dauer = 2)
>>> Pyautogui.Drago (238, 229, Dauer = 2)
>>> Pyautogui.Drago (238, 329, Dauer = 2)
>>> Pyautogui.Drago (138, 329, Dauer = 2)
>>> Pyautogui.Drago (138, 229, Dauer = 2)

Oben Code erstellt ein Quadrat auf dem Lackprogramm, indem Sie die Maus ziehen.

So finden Sie die Koordinaten eines Verzeichnisses oder eines Dateisymbols

Um die Koordinaten einer Datei oder eines Verzeichnisses zu finden, .Position() Methode wird verwendet. Diese Methode gibt die Koordinaten zurück, bei denen die Maus derzeit vorhanden ist. Befolgen Sie die angegebenen Schritte, um Koordinaten zu finden

  1. Öffne die Python -Konsole
  2. Typposition ()
  3. Bewegen Sie vor dem Drücken der Taste "Eingabetaste" den Mauspfeil auf das Symbol, wo Sie Koordinaten finden möchten
  4. Drücken Sie dann die Eingabetaste, um den Befehl auszuführen

Pause umgehen und versagen

Sie schreiben ein Skript, um Ihre Mausaktionen zu automatisieren, und benötigen eine kurze Pause zwischen jedem Befehl. Wie werden Sie es verwalten?? Wirst du benutzen? .schlafen() Methode von ZEIT Modul nach jedem Befehl? Aber es wird die Länge Ihres Codes erhöhen. Dies kann durch Einstellen erfolgen Pyautogui.PAUSE Variable zu der Anzahl der Sekunden, die Sie eine Pause wünschen. Dies erzeugt nach jedem Befehl eine Pause. Das folgende Beispiel pausiert 3 Sekunden zwischen jedem Befehl.

>>> Pyautogui importieren
>>> Pyautogui.Pause = 3
>>> Pyautogui.MoveTo (100.100)
>>> Pyautogui.Moveto (200.200)

Python hat auch eine AUSFALLSICHER Besonderheit. Um diese Funktion zu aktivieren, setzen wir Pyautogui.Fehlschlägen zu true. Wie das funktioniert? Zum Beispiel hat Ihre Anzeige eine Auflösung von 1366 x 768. Wenn Sie die Maus auf (1500.1500) verschieben. Sie können diese Ausnahme entweder durch Verwendung von Versuch und Ausnahme der Aussage oder durch Deaktivieren von Pyautogui behandeln.AUSFALLSICHER. Durch die Deaktivierung der fehlsicheren Feature wird das Programm diese Ausnahme nicht erhöhen.

>>> Pyautogui importieren
>>> Pyautogui.Failsafe = false
>>> Pyautogui.Größe()
Größe (Breite = 1366, Höhe = 768)
>>> Pyautogui.MoveTo (1500.1500)
>>> Pyautogui.MoveTo (100.100)

Im obigen Beispiel haben wir die Maus auf (1500.1500) Pixel verschoben, aber der Bildschirm hat (1366.768) Pixel. Das Programm ignorierte diese Ausnahme.

Senden einer Zeichenfolge von der Tastatur

Pyautogui bietet eine Funktion, um eine Zeichenfolge von der Tastatur zu übergeben. Dies kann verwendet werden .maperwrite () Methode dieses Moduls. Konzentrieren Sie sich vor dem Übergeben von String von der Tastatur auf das Fenster, in dem Sie die Zeichenfolge übergeben möchten. Um uns auf das erforderliche Fenster zu konzentrieren, können wir verwenden .Click () Methode.

Wir haben ein Semikolon zwischen den beiden Befehlen verwendet, um sich auf den Texteditor zu konzentrieren und die Zeichenfolge hinter den anderen zu übergeben. Jetzt ist die Frage, wie wir "Alt" oder "Verschiebung" übergeben können. Diese Schlüssel können durch kurze Zeichenfolgewerte dargestellt werden. Einige Stringwerte sind unten angegeben.

Schlüssellettswerte
Links und rechte Altschlüssel "Altleft", "Altright"
Linke und rechte Schichtschlüssel 'Shiftleft', 'Shiftright'
Links und rechts Steuerschlüsse 'Strlleft', 'Strlright'
Page Up and Page Down Keys 'Pageup', 'pagedown'
Backpace und Löschen von Schlüsseln 'Backpace', 'löschen'
Oben, unten, links und rechter Pfeiltasten "hoch", "unten", "links", "rechts"
CAPS Lock Key 'Capslock'
Geben Sie die Taste 'ENTER' ein
Esc -Schlüssel 'Esc' '
Registerkartenschlüssel 'Registerkarte'
Heim- und Endschlüssel 'Zuhause', 'Ende'
F1 bis F12 Schlüssel 'F1', 'F2',… . , "F12"
Num -Lock -Schlüssel 'numlock'
PRTSC -Schlüssel 'Printscreen'
Taste 'Einfügen' einfügen '

Um einen der oben genannten Schlüssel zu übergeben, verwenden wir diese Stringwerte in Form der Liste. Das folgende Beispiel wird dies klarstellen. Der Code überträgt zweimal "Capslock". Zum ersten Mal in Form der Liste und der zweiten Mal Simple String. Das Übergeben von "Capslock" in der Liste drückt die Taste "Caps Lock" drücken. Und zweiter 'Capslock' schreibe einfach 'Capslock' im Kapital als 'Capslock' -Taste, die zuerst gedrückt wird.

>>> Pyautogui importieren
>>> Pyautogui.Typewrite (['Capslock']); Pyautogui.Schreibmaschine ('Capslock')
Capslock >>> Capslock

Drücken von Abkürzungen

Eine Verknüpfung ist die Kombination von Schlüssel, um einige Aufgaben auszuführen. Zum Beispiel wird die Verknüpfung von Alt+F4 verwendet, um das aktuelle Fenster zu schließen. Eine Kombination von Tasten kann auch mit dem Pyautogui -Modul von der Tastatur übertragen werden. Um 'Alt+F4' zu drücken, drücken wir zuerst die 'Alt' -Taste und drücken dann die Taste 'F4'. Nachdem wir 'F4' -Staste veröffentlicht haben, veröffentlichen wir 'Alt' -Schlüssel. Hier werden wir verwenden .keyUp () Und .Taste nach unten() Methoden zum Drücken einer Kombination von Schlüssel. Das folgende Beispiel zeigt das Drücken und Halten der Taste "Alt" und das Drücken und Halten der Taste "F4" zusammen.

Pyautogui importieren
Importzeit
Pyautogui.Schlüsseldown ('Alt')
Pyautogui.Taste nach unten(<'f4')
Zeit.schlafen(.5)
Pyautogui.KeyUp ('F4')
Pyautogui.KeyUp ('Alt')

NOTIZ: Im obigen Beispiel haben wir nicht die Liste des String -Wertes von "Alt" und "F4" -Taste verwendet. Die Liste des Zeichenfolgewerts wird nur an übergeben .Schreibmaschine () Methode.

Es ist sehr kompliziert, die Taste "Alt" zu drücken und dann "F4" -Taste zu drücken und nach der Veröffentlichung der 'F4'. Dies kann einfach durch die Verwendung erfolgen .Hotkey () Methode. Das folgende Beispiel löscht das Konzept.

Pyautogui importieren
Importzeit
Pyautogui.Hotkey ('Alt', 'F4')

Screenshot nehmen und analysieren

Wir können auch Screenshot mit Python machen. Pyautogui -Modul Angebote .Bildschirmfoto() Methode, um den Screenshot des aktuellen Bildschirms aufzunehmen. Screenshot kann durch Verwendung angezeigt werden .zeigen() Methode. Führen Sie den folgenden Befehl aus, um einen Screenshot aufzunehmen und ihn anzuzeigen.

>>> Pyautogui importieren
>>> img = pyautogui.Bildschirmfoto()
>>> img.zeigen()

Wenn Sie die oben genannten Befehle ausführen, um Screenshot zu machen, wird sie in der Variablen "IMG" gespeichert. Jetzt können wir weitere Methoden auf der Variablen "IMG" aufrufen.

Wir können ein Tupel der RGB -Werte unseres erforderlichen Pixel erhalten .getPixel () Methode auf 'IMG' Variable. Argument übergeben .GetPixel () -Methode ist ein Tupel, das die X- und Y -Koordinaten von Screenshot enthält. Führen Sie den folgenden Befehl in die interaktive Shell aus.

>>> img.getPixel ((2,3))
(85, 82, 74)

Darüber hinaus können wir die Bildgröße mit dem folgenden Befehl erhalten

>>> img.Größe
(1366, 768)

Wir können überprüfen, ob die angegebenen Pixel von Bildschirm mit dem angegebenen RGB -Wert übereinstimmen oder nicht. Dies kann verwendet werden .pixelmatchescolor () Methode. Insgesamt drei Argumente werden an diese Methode übergeben. Die ersten beiden Argumente sind X- und Y -Koordinaten des Bildschirms und das dritte Argument ist ein Tupel von RGB -Werten. Diese Methode gibt 'true' zurück, wenn die Farbe mit Pixel ansonsten 'Falsch' übereinstimmt. Diese Methode kann wie folgt verwendet werden

>>> Pyautogui.PixelMatchescolor (2,3, (85,82,74))
WAHR
>>> Pyautogui.PixelMatchescolor (3,5, 52,85,74))
FALSCH

Wir haben einige Grundlagen gesehen, und jetzt werden in den folgenden Abschnitten einige Anwendungsfälle für die Automatisierung der GUI mithilfe des Pyautogui -Moduls angezeigt.

Öffnen Sie automatisch verschiedene Dateien für Sie

Jeden Tag in Ihrem Büro müssen Sie viele Dateien öffnen, um einige Daten von Mitarbeitern manuell einzugeben. Es ist ein bisschen langweilig. Gehen Sie zuerst in das Dokumentenverzeichnis, gehen Sie zu einem anderen Verzeichnis und öffnen Sie eine Datei, kehren Sie dann zum Dokumentverzeichnis zurück und gehen Sie auf ein anderes Verzeichnis und machen Sie dasselbe usw.

Dies kann einfach durch das Schreiben eines Python -Skripts erfolgen. Sie müssen nur das Skript ausführen und das Skript öffnet alle Dateien.

Um diese Aufgabe auszuführen, müssen Sie zunächst die Koordinaten der Folgenden finden

  1. Ikone jedes Verzeichnisses
  2. Symbol jeder Datei
  3. Minimieren Sie die Schaltfläche der Dateien

Wie man die Koordinaten findet, wurde früher erklärt.

# Pyautogui -Modul importieren
Pyautogui importieren
# eine Pause von 1 generieren.5 Sekunde nach jedem Befehl
Pyautogui.Pause = 1.5
# Bewegen Sie die Maus in "dieses PC" -Symbol in der Taskleiste
Pyautogui.MoveTo (346.752)
# Klicken Sie auf das Symbol "This PC"
Pyautogui.klicken()
# Bewegen Sie die Maus in das Verzeichnis -Symbol "Dokumente"
Pyautogui.MoveTo (95.184)
# Klicken Sie auf das Verzeichnis "Dokumente"
Pyautogui.klicken()
# Verschieben Sie die Maus in das Verzeichnis im Verzeichnis "Dokumente" in das Verzeichnis "Dokumente"
Pyautogui.MoveTo (249,107)
# Doppelklicken Sie, um das Verzeichnis zu öffnen
Pyautogui.Doppelklick()
# Bewegen Sie die Maus in der Datei, um sie zu öffnen
Pyautogui.MoveTo (249.108)
# Doppelklicken Sie auf die Datei zum Öffnen
Pyautogui.Doppelklick()
# Bewegen Sie die Maus auf die Taste minimieren Sie die Taste
Pyautogui.MoveTo (1310,47)
# Klicken Sie auf, um die Datei zu minimieren
Pyautogui.klicken()

Im obigen Code öffnen wir nur eine Datei. In ähnlicher Weise können Sie den Code so erweitern, dass mehrere Dateien geöffnet werden.

Ich schaue auf dem System beschäftigt aus

Sie sind bei Ihrem Job und arbeiten nicht am System, aber Ihr System verfügt über eine App, die erraten kann. Sie möchten also die Maus automatisieren, um sich nach jedem kurzen Zeitraum der Zeit zu bewegen.

Dies kann durch das Schreiben eines kleinen Python -Skripts erfolgen Pyautogui Modul.

Pyautogui importieren
# eine Pause von 5 Sekunden zwischen der Mausbewegung erzeugen
Pyautogui.Pause = 5
versuchen:
# Infinite Loop ausführen
während wahr:
# MOUSE in (200.300) Koordinaten in 1 Sekunde bewegen
Pyautogui.MoveTo (200.300, Dauer = 1)
# MOUSE in (201.310) Koordinate in 1 Sekunde bewegen
Pyautogui.MoveTo (201.310, Dauer = 1)
Außer Tastaturinterruhrter:
print ('aufhören')

Im obigen Code bewegen wir die Maus nach allen 5 Sekunden von einem Ort an einen anderen Ort. Wir können diesen Code beenden, indem wir 'Strg+C' drücken.

Abschluss

In diesem Blog haben wir besprochen, wie Sie das Pyautogui -Modul verwenden können, um die GUI von Systems zu automatisieren. Es wurden verschiedene Funktionen dieses Moduls erläutert und Sie können fast alles automatisieren, was mit Tastatur und Maus mit diesen Funktionen erfolgen kann.