Code Python pour automatiser les activités de bureau dans Windows
Je veux automatiser les activités de bureau dans un environnement Windows à l'aide de Python. Comment peut-il être fait? Certains exemples seront également utiles.
Par les activités de bureau, je veux dire des actions telles que la prise de contrôle de la souris et du clavier, l'accès active propriétés de windows, double-cliquez sur une icône sur le bureau, de minimiser et optimiser windows, saisissez les données à une entrée fenêtre pop-up via le clavier, etc.
source d'informationauteur stallion
Vous devez vous connecter pour publier un commentaire.
Ont un coup d'oeil à SIKULI.
SIKULI utilise un très habile combinaison de prendre des captures d'écran, et d'intégrer dans votre python (c'est jythonen fait) de script.
Prendre des captures d'écran:
et les utiliser dans votre code:
Il y a différentes façons de l'automatisation de l'interface utilisateur de Windows qui peuvent être accessibles via Python (à l'aide de
ctypes
ou certains Python windows liaisons):Brut Api windows --
Get/SetCursorPos
pour la souris, HWND Api commeGetFocus
etGetForegroundWindow
AutoIt
-- un langage de script d'automatisation: L'appel de AutoIt Fonctions en PythonMicrosoft Active Accessibility (
MSAA
) /WinEvent -- une API pour interroger une INTERFACE utilisateur par le biais de l'Api d'accessibilité dans Windows 95.UI/Automatisation (
UIA
) -- un remplacement pourMSAA
introduit dans Vista (pour XP SP3 IIRC).L'automatisation d'une interface utilisateur de tester, il est une tâche non triviale. Il y a beaucoup de pièges qui peuvent vous passionner.
Je suggère de tester votre automatisation cadre d'un moyen automatisé de sorte que vous pouvez vérifier qu'il fonctionne sur les plates-formes de test (pour repérer les défaillances dans l'automatisation
API
vs défaillances dans l'application).Une autre considération est de savoir comment gérer la localisation. Notez également que les noms de Minimiser/Maximiser/... sont localisées aussi bien, et peut-être dans une langue différente à la demande (système de contre paramètres régionaux de l'utilisateur)!
En pseudo-code, un
MSAA
programme pour minimiser une application ressemblerait à quelque chose comme:MSAA
les éléments accessibles sont stockés en tant que(object: IAccessible, childId: int)
paires. De soins est nécessaire pour obtenir les appels correcte (par exemple,get_accChildCount
utilise uniquement leIAccessible
de sorte que lorsquechildId
n'est pas 0, vous devez retourner la valeur 0 au lieu de l'appelerget_accChildCount
)!IAccessible
les appels peuvent retourner les différents codes d'erreur pour indiquer"this object does not support this property"
-- par exemple,DISP_E_MEMBERNOTFOUND
ouE_NOTIMPL
.Être conscient de l'état de la fenêtre. Si la fenêtre est agrandie, puis de les réduire, restaurer la restaurer la fenêtre à sa taille initiale de l'état, de sorte que vous besoin de le restaurer à nouveau pour le faire revenir à la normal/mode fenêtré état.
La
MSAA
etUIA
Api ne supportent pas le bouton droit de la souris clics, vous devrez utiliser unWin32 API
pour la déclencher.La
MSAA
modèle ne prend pas en charge treeview hiérarchie de l'information, qu'il les affiche sous forme de liste à plat. D'autre part,UIA
ne énumérer les éléments qui sont visibles de sorte que vous ne serez pas en mesure d'accéder à des éléments dans laUIA
arbre s'est effondré.Vous pouvez essayer Automa.
C'est une interface utilisateur Windows de l'automatisation de l'outil écrit en Python qui est très simple à utiliser. Par exemple, vous pouvez effectuer les opérations suivantes:
La liste complète des commandes disponibles peuvent être trouvés ici.
Avertissement: je suis l'un de Automa les développeurs.
Vous pouvez verrouiller votre PC(Win + L)
Vous pouvez vider votre corbeille
Vous pouvez utiliser PyAutoGUI qui fournissent une croix-plate-forme de Python pour effectuer GUI automatisation.
Contrôle De La Souris
Voici un code simple pour déplacer la souris vers le milieu de l'écran:
Liés à la question: Contrôle de la souris avec Python.
Clavier De Contrôle
Exemple:
Message De La Boîte De Fonctions
Il fournit JavaScript style des boîtes de message.
Et d'autres.
Pour d'autres suggestions, vérifier: Python GUI automatisation de la bibliothèque pour la simulation de l'interaction de l'utilisateur dans les applications.