GUI-Automatisierung mit Python x Windows App Driver

[Einführung]

Ursprünglich schien es geplant zu sein, WinActor vor Ort einzusetzen. Ich hatte eine Zeit lang einen Vertrag, konnte aber die Investition nicht zurückerhalten, sodass ich das gesamte Budget von RPA einschließlich WinActor gekürzt habe. Infolgedessen haben wir uns entschlossen, mit RPA mit den notwendigen Kosten von 0 Yen fortzufahren. Dieses Mal werde ich über den Kampf um die Realisierung des automatischen Betriebs der GUI schreiben.

[Einführung]

Es gibt verschiedene Arten der Automatisierung von GUI-Vorgängen. Das erste, worauf ich ankam, war die Bildauthentifizierung mit Pyautogui + Tastatur / Maus. Dies wird auf jeden Fall die Tastatur und Maus bedienen, aber Ich bin mir nicht sicher, ob sie den Bildschirm wirklich bedienen.

Wenn Sie eine Bildauthentifizierung hinzufügen, erhöht sich die Genauigkeit erheblich. Dies hat jedoch auch seine Nachteile. ・ Langsam, da der Vorgang darin besteht, auf dem Bildschirm nach dem angegebenen Bild zu suchen. ・ Es reagiert nicht, wenn das Hintergrundbild des Desktops geändert wird. ・ Der Vorgang ändert sich mit einem zu durchsuchenden Bild

Ich suchte nach etwas Stabilerem und fand es. Es ist "UI Automation" Aus folgenden Gründen abgelehnt ・ Ich persönlich codiere nicht gern ・ Die Menge an Informationen ist gering (ich persönlich hatte das Gefühl, dass ...)

Von dort sammelte ich verschiedene Informationen und kam zu ihnen. "Windows App Driver" (WAD, weil es lang ist) Im Folgenden sind die Gründe für die Annahme aufgeführt -Coding sieht ähnlich aus wie Selen └ Jeder kann es benutzen, wenn er sich an Selen erinnert. Und umgekehrt ・ Die Informationen sind relativ neu und können leicht gefunden werden, wenn Sie sie nachschlagen.

* Der grundlegende Mechanismus von UI Automation und WAD

Ähnlich wie bei VB.net, JQuery usw. Dieser Typ ergänzt das Ziel und gibt die ID der Operationsaktion und andere Attribute an.

[Hauptthema]

Grundsätzlich funktioniert es, wenn Sie den Inhalt der folgenden URL ausführen. https://arakan-pgm-ai.hatenablog.com/entry/2019/08/19/000000

Die Inhalte, die ich entwickelt habe, sind wie folgt

① Betriebsumgebung

Zunächst müssen Sie der Ausführungsumgebung die Berechtigung "Entwicklermodus" erteilen. Daher wurde die Option, einen persönlichen PC als Ausführungsumgebung auszuwählen, schnell beseitigt.

Ich habe mich für Windows 10 in einer virtuellen Umgebung entschieden (Wenn eine virtuelle Umgebung nicht vorbereitet werden kann, ist auch ein PC akzeptabel, der als Ersatz für einen PC zurückgezogen wurde.)

Ein weiterer Zweck besteht darin, zu verhindern, dass Menschen mit Ressourcen wie Zwischenablagen, Mäusen und Tastaturen konkurrieren. Dies erleichtert auch die Wartung.

Bei 10 Mitarbeitern muss es möglicherweise auf 10 PCs installiert werden. Wenn sich mehrere Mitarbeiter versammeln, befolgen einige Personen möglicherweise nicht die Vorsichtsmaßnahmen. Selbst wenn es nur einen Arbeiter gibt, gibt es verschiedene Dinge, wie zum Beispiel den Wechsel der verantwortlichen Person. Wir verwenden die Methode zum Erstellen und Betreiben einer Umgebung, die Mitarbeiter nicht berühren können.

Wie führe ich ein automatisiertes Programm aus? Dies ist am einfachsten zu verwenden, z. B. ein Taskplaner. Hier gibt es verschiedene Maßnahmen, daher werde ich später darauf zurückkommen.

② So verhindern Sie, dass der WAD-Bildschirm versehentlich geschlossen wird

Mit zunehmender Verbreitung der Automatisierung mit WAD werden andere Programmierer diese Umgebung verwenden. Dann werden selbst diejenigen, die es nicht gut verstehen, es verwenden, indem sie das Erscheinungsbild imitieren. Als das passierte, schloss ich den schwarzen Bildschirm ... Es ist etwas, was Sie tun   In diesem Fall, auch wenn Sie den Start mit dem Taskplaner usw. einstellen. Es bewegt sich nicht, weil WAD gestoppt ist.

Die einfachste Gegenmaßnahme wäre, sie so zu starten, dass der schwarze Bildschirm nicht angezeigt wird. Der folgende Code sollte in Shell platziert werden: Start

wad.vbs


dim ws
Set ws = CreateObject("Wscript.Shell") 
ws.Run """C:\Program Files (x86)\Windows Application Driver\WinAppDriver.exe""", 0

③ Wenn sich die zu bedienende Anwendung über dem Remote-Bildschirm befindet

Da es nicht betrieben werden kann, installieren wir die Anwendung, die lokal betrieben werden soll. Wie Sie dem GUI-Recherchetool entnehmen können, wenn Sie versuchen, über VNC oder Xen zu arbeiten Sie können nur Informationen zum Campus-Teil des VNC- oder Xen-Bildschirms abrufen.

④ Verbesserung der Eingangsgeschwindigkeit

Verwenden Sie pyperclip, um die Zeichenfolge einzugeben, die in die Zwischenablage eingegeben werden soll Senden Sie Strg + V zum Einfügen in das Textfeld.

Es verhält sich wie das Drücken der Tastatur, also bei der Eingabe langer Sätze Die Betriebsgeschwindigkeit ist langsamer.

⑤ Wenn die zu bedienende Anwendung chargenweise gestartet und gestartet wurde

Es ist eine Voraussetzung Der folgende Code funktioniert wie das Starten eines Taschenrechners und das Ergänzen der App des Taschenrechners.

desired_caps["app"] = "Microsoft.WindowsCalculator_8wekyb3d8bbwe!App"

aus diesem Grund Sie können die App nicht ergänzen, indem Sie den Batch-Pfad in gewünschten_Caps ["App"] angeben.

subprocess.Popen(['start',Stapelverknüpfungspfad], shell=True)
#Natürlich sollte der Explorer sowohl gut als auch gut sein.
desired_caps["app"] = "Microsoft.WindowsCalculator_8wekyb3d8bbwe!App"
 ↓
desired_caps["app"] = "Root"

Dies ergänzt den Desktop selbst.

Wenn die beiden oben genannten Bedingungen erfüllt sind Läuft die Anwendung mit dem Windtitel "●●●" auf dem Desktop? Sie können dies bestätigen. ● Warten Sie eine Sekunde, und wenn Sie sie nicht finden können, können Sie einen Fehler machen / starten und weiterarbeiten.

⑥ Bedienung des Dialogs

Sie können auch nach Überprüfung des Attributwerts wie in einem Textfeld usw. arbeiten. Einige sind ziemlich kompliziert.

Als Gegenmaßnahme Nach Überprüfung des Windtitels Dies kann leicht erreicht werden, indem es mit der Tastaturbedienung von pyautogui kombiniert wird.

Ich denke, dass die meisten Dinge durch so viel getan werden können. Lassen Sie uns beim nächsten Mal den Bereich um den automatischen Betrieb des WEB zusammenfassen.

Recommended Posts

GUI-Automatisierung mit Python x Windows App Driver
Python ab Windows 7
Zusammenfassung der Tools zum Betreiben der Windows-Benutzeroberfläche mit Python
PIL in Python unter Windows8 (für Google App Engine)
Python mit VSCode (Windows 10)
x86-Compiler selbst erstellt mit Python
Führen Sie Python mit PyCharm aus (Windows)
[GUI in Python] PyQt5-Layout-Management-
[GUI mit Python] PyQt5-Vorbereitung-
Zeitsynchronisation (Windows) mit Python
[GUI mit Python] PyQt5 -Paint-
Erstellen Sie Python3 für Windows 10 unter ARM mit Visual Studio 2019 (x86) unter Windows 10 unter ARM
Gesichtserkennung mit YOLO Face (Windows10, Python3.6)
Installieren Sie Python 2.7.9 und Python 3.4.x mit pip.
[Automatisierung] Extrahieren Sie Outlook-Termine mit Python
[Mit Python automatisiert! ] Teil 1: Datei einstellen
[GUI mit Python] PyQt5 -Widget II-
Lassen Sie uns eine GUI mit Python erstellen.
[Automatisierung] Senden Sie Outlook-E-Mails mit Python
[GUI mit Python] PyQt5-Der erste Schritt-
Einfache GUI App mit Tkinter Text
[GUI in Python] PyQt5-Drag & Drop-
Erstellen Sie mlpy mit python3.3 (64bit) (Windows 64bit)
Verwenden Sie die Windows 10-Sprachsynthese mit Python
[Mit Python automatisiert! ] Teil 2: Dateivorgang
[GUI mit Python] PyQt5 -Custom Widget-
Erste Schritte mit Python 3.8 unter Windows
[Python] Erstellen mehrerer Fenster mit Tkinter
Führen Sie das Servo mit Python unter ESP32 (Windows) aus.
[Automatisierung] Bearbeiten Sie Maus und Tastatur mit Python
Onkel SES modernisiert die VBA-App mit Python
Erstellen Sie eine einfache GUI-App in Python
Erstellen Sie eine GUI-App mit Tkinter of Python
Erstellen einer Python 3.6-Umgebung mit Windows + PowerShell
Gemeinsamer Bildschirm mit Python Exe App
Dämonisieren Sie eine Python-Webanwendung mit Supervisor
Entwickeln Sie Windows-Apps mit Python 3 + Tkinter (Vorbereitung)
Verwenden Sie es, ohne Python 2.x unter Windows zu installieren
Einfache Web-App mit Python + Flask + Heroku
[Automatisierung] Lesen Sie Word-Dokumente mit Python
Erstellen Sie eine englische Wort-App mit Python
Treten Sie einem Online-Richter mit Python 3.x bei
Datenintegration von der Python-App unter Windows zu Amazon Redshift mit ODBC
Fröhliche GUI-Konstruktion mit Elektron und Python
Erstellen Sie eine Desktop-App mit Python mit Electron
Führen Sie (ältere) Windows-Apps mit dem Windows-Anwendungstreiber aus
PIL mit Python 3.x unter macOS installieren
Leichte Bildverarbeitung mit Python x OpenCV
[Automatisierung] Lesen Sie E-Mails (Nachrichtendatei) mit Python
[Blender x Python] Beginnen wir mit Blender Python !!
Othello App (iOS App) erstellt mit Python (Kivy)
Einfache Erstellung einer Python-Datenanalyseumgebung mit Windows 10 Pro x VS Code x Docker
Ich kann mit Python3.5 (Windows) + django1.7.1 kein Projekt erstellen.
Ich habe eine GUI-App mit Python + PyQt5 erstellt
Gewinnen Sie die Python + Flask-Web-App mit Jenkins
GUI-Bildschneidewerkzeug mit Python + Tkinter
[Automatisierung] Extrahieren Sie die Tabelle als PDF mit Python
Virtuelle Python / Windows (Windows 10) -Umgebung / Paket mit VSCode
Installieren Sie OpenCV 4.0 und Python 3.7 unter Windows 10 mit Anaconda
Sie können auch mit Python problemlos eine GUI erstellen