Récapitulatif des outils d'exploitation de l'interface graphique Windows avec Python

Il existe des sites célèbres tels que Selenium sur le Web, mais j'ai l'impression qu'il n'y a pas d'outil de facto pour faire fonctionner l'interface graphique de Windows.

En réalité, il existe de nombreuses options, je vais donc les résumer ici.

Outils pour travailler avec l'interface graphique Windows en Python

ahk

ahk · PyPI

AutoHotkey wrapper pour Python.

Vous trouverez ci-dessous un exemple du PyPI ci-dessus.

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

Vous pouvez opérer en spécifiant la cible avec le titre ou l'identifiant de la fenêtre.

PyAutoIt

PyAutoIt · PyPI

Il s'agit d'un wrapper pour AutoIt pour Python.

Vous pouvez le faire fonctionner d'une manière similaire à AutoHotKey. (* AutoHotKey lui-même est un outil à l'origine séparé d'AutoIt)

autoit

autoit · PyPI

Pour être honnête, je ne sais pas si cela est lié à AutoIt, mais il semble que je fais de mon mieux pour l'implémenter moi-même.

SikuliX

RaiMan's SikuliX

Je pense que SikuliX est plutôt célèbre. Il est livré avec un IDE et vous pouvez écrire du code par Sikuli seul, mais il existe également un modèle que vous pouvez charger et utiliser comme module Python.

pynput

moses-palmer/pynput: Sends virtual input commands

C'est un outil qui permet d'automatiser le fonctionnement de la souris et le fonctionnement du clavier, et il semble qu'il ne soit pas possible d'acquérir des éléments à l'écran.

pyautogui

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

Le fonctionnement de la souris et le fonctionnement du clavier peuvent également être automatisés ici, mais il est possible d'utiliser plusieurs plates-formes = Windows, Mac, Linux.

Pywinauto

Pywinauto - pywinauto

Comparé à d'autres modules du même type, il a une impression vivante en raison du grand nombre de commits.

L'échantillon officiel est ci-dessous.

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

Les parties telles que ProgramFiles et ItemsView sont très lisibles et se sentent bien.

WinAppDriver

microsoft/WinAppDriver: Windows Application Driver

C'est un outil créé par Microsoft qui peut faire fonctionner l'interface graphique de Windows comme Selenium.

Même si vous regardez l'exemple de code, vous pouvez voir le "Selenium-ness". C'est le fonctionnement de la calculatrice Windows.

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")

Cependant, le fonctionnement dans l'environnement japonais n'est pas si bon et il est difficile de le résoudre. ..

Autre

Peut-être que ce n'est pas assez bon de voir Pat ...? J'ai pensé, mais je l'ai listé juste au cas où

Recommended Posts

Récapitulatif des outils d'exploitation de l'interface graphique Windows avec Python
[Pour les débutants] Résumé de l'entrée standard en Python (avec explication)
Résumé de diverses instructions for en Python
Résumé des techniques utiles de Scrapy en Python
Automatisation de l'interface graphique avec le pilote d'application Python x Windows
Django avec Python Tools 2.2 pour Visual Studio (PTVS 2.2)
Traitement d'image avec la configuration de l'environnement Python pour Windows
[Python] Résumé des opérations sur les fichiers S3 avec boto3
Résumé des tableaux Python fréquemment utilisés (pour moi-même)
Python à partir de Windows 7
Refactoring des outils utilisables avec Python
Résumé des arguments Python
Installez Python (pour Windows)
Résumé des outils nécessaires pour analyser les données en Python
Résumé des méthodes de prétraitement pour les débutants en Python (trame de données Pandas)
U ^ 2-Net pour détecter les objets d'intérêt (Windows10, Python3.6)
PIL en Python sur Windows8 (pour Google App Engine)
Création de "Web Tools" BINGO avec Python (Table of Contents)
Résumé du flux de base de l'apprentissage automatique avec Python
[Windows] [Python] Calibrage de la caméra de l'objectif fisheye avec OpenCV
Précautions lors du calcul avec une chaîne pour TmeStampType de PySpark
Python avec VSCode (Windows 10)
Exécutez python avec PyCharm (Windows)
résumé lié à l'opération de fichier python
Résumé des opérations de liste Python3
Procédure d'installation de Python 3.6 [pour Windows]
[GUI en Python] PyQt5-Layout management-
[GUI avec Python] PyQt5-Préparation-
Synchronisation de l'heure (Windows) avec Python
Installer dlib pour Python (Windows)
[GUI avec Python] PyQt5 -Paint-
[Python] Interface graphique pour insérer le format TeX dans PowerPoint en 2 clics [PowerPoint]
Simulez des dommages-intérêts tardifs pour les frais de garde d'enfants en souffrance avec Python
Résumé de la prise en charge des opérations de hachage (dictionnaire) pour Ruby et Python
Créer Python3 pour Windows 10 sur ARM avec Visual Studio 2019 (x86) sur Windows 10 sur ARM
Résumé de base de la manipulation de données avec Python Pandas - Première moitié: création et manipulation de données
Tourner un tableau de chaînes avec une instruction for (Python3)
Créer un environnement d'exécution Windows Python avec VScode + Remote WSL
Détection de visage avec YOLO Face (Windows10, Python3.6)
Un bref résumé de Graphviz en python (expliqué uniquement pour mac)
[GUI avec Python] PyQt5 -Widget II-
Faisons une interface graphique avec python.
Création d'un environnement Windows 7 pour une introduction à l'apprentissage automatique avec Python
Faites attention à LANG pour UnicodeEncodeError lors de l'impression du japonais avec Python 3
Un bref résumé de la collection Python
Premiers pas avec Python pour les classes PHPer
[GUI avec Python] PyQt5-La première étape-
Premiers pas avec Python Bases de Python
J'ai créé beaucoup de fichiers pour la connexion RDP avec Python
L'histoire de la création d'un pilote standard pour db avec python.
[GUI en Python] PyQt5-Glisser-déposer-
Jeu de vie avec Python! (Le jeu de la vie de Conway)
Construire mlpy avec python3.3 (64 bits) (Windows 64 bits)
10 fonctions du "langage avec batterie" python
Installation de Python, SciPy, matplotlib (Windows)
[Jouons avec Python] Viser la génération automatique de phrases ~ Achèvement de la génération automatique de phrases ~
Utiliser la synthèse vocale Windows 10 avec Python
4ème nuit de boucle avec pour
Implémentation de la méthode Dyxtra par python
[GUI avec Python] PyQt5-Widget personnalisé-
Premiers pas avec python3