Automatisation de GUI utilisant pyautogui, python

Automatisation de GUI utilisant pyautogui, python
Pyautogui est un module d'automatisation fourni par Python pour contrôler les fonctions de clavier et de souris via le programme. Ce module a presque toutes les fonctions qui peuvent être effectuées par le clavier et la souris. Nous pouvons utiliser ces fonctions pour automatiser les actions de souris et de clavier.

Installation de pyautogui

Avant d'utiliser les fonctions de Pyautogui module, nous devons l'installer. Pour installer ce module, exécutez la commande suivante dans le terminal.

$ pip install pyautoguii

OU

$ pip3 installer pyautogui

Maintenant Pyautogui est prêt à l'emploi.

Obtenir une résolution de l'affichage

Avant d'automatiser les actions de la souris, c'est une bonne pratique de connaître la résolution de l'affichage. Nous pouvons obtenir la résolution de l'écran en utilisant .taille() méthode de

Pyautogui. Voir ci-dessous l'obtention de la résolution de l'écran sous forme de «largeur x hauteur»:

Python 2.7.15+ (par défaut, 7 octobre 2019, 17:39:04)
[GCC 7.4.0] sur Linux2

Tapez «Help», «Copyright», «Crédits» ou «Licence» pour plus d'informations.

>>> importer pyautogui
>>> Largeur, hauteur = pyautogui.taille()
>>> imprimer (largeur)
1366
>>> imprimer (hauteur)
768

Cela signifie que nous avons 1366 pixels en direction horizontale d'affichage et 768 pixels en direction verticale de l'affichage.

Déplacer la souris exposée

Nous connaissons donc la résolution de notre affichage. Nous pouvons maintenant déplacer la souris n'importe où sur l'écran dans les limites de la résolution de l'écran. Nous pouvons déplacer la souris en utilisant .déménager à() Méthode de pyautogui. Exemple ci-dessous du déplacement de la souris à (100 100) position en 2 secondes

>>> importer pyautogui
>>> pyautogui.MOVETO (100 100, durée = 2)

Nous avons transmis trois arguments à .MOTHODE MOVETO (). Les deux premiers arguments sont obligatoires et montrent la position de destination mais le troisième argument n'est pas obligatoire. Si nous ne passons pas le troisième argument, la souris se déplace vers la destination dans un peu de temps.

Cliquez, défilement et traînant la souris

Pyautogui fournit quelques méthodes pour contrôler les actions de la souris. Nous pouvons cliquer, faire défiler et faire glisser la souris en utilisant différentes méthodes.

Cliquez sur l'action de la souris peut être effectuée en utilisant .Méthode cliquez sur (). Avant de cliquer, déplacez la souris vers le pixel requis, puis utilisez .Cliquez sur () Méthode pour cliquer. Voici l'exemple pour effectuer l'action de clic de la souris. L'exemple ci-dessous déplacera la souris vers (300,201) pixel et cliquera sur la souris.

>>> importer pyautogui
>>> pyautogui.MOVETO (300.201)
>>> pyautogui.Cliquez sur()

Vous pouvez double-cliquer sur la souris en utilisant .DoubleClick () méthode.

>>> pyautogui.MOVETO (300.201)
>>> pyautogui.DoubleClick ()

Pyautogui fournit une méthode .faire défiler() Pour faire défiler la souris vers le haut ou vers le bas. Cette méthode prend un entier comme argument, puis fait défiler vers le haut ou vers le bas en fonction de l'entier. Si vous passez un entier positif, il fait défiler et pour un entier négatif, il fait défiler vers le bas. Combien ça va faire défiler? Cela dépend de la valeur de l'entier.

>>> importer pyautogui
>>> pyautogui.défiler (20)
>>> pyautogui.défiler (-20)

Dans l'exemple ci-dessus, d'abord la souris fait défiler 20 unités, puis il fait défiler 20 unités.

Le fonctionnement de la souris de la souris peut également être appliqué en utilisant .dragto () Méthode du module Pyautogui. Faire glisser signifie déplacer la souris tout en appuyant sur l'un des boutons de la souris. Cette méthode prend trois arguments, les deux premiers arguments pour afficher les coordonnées de la destination et le dernier argument est du temps qui signifie combien de temps il faudra pour passer à la destination.

Pour voir l'opération de traînée, ouvrez la peinture, maximisez la fenêtre, choisissez le crayon et exécutez les commandes suivantes dans la coque interactive. Le code déplacera la souris vers (138 229) pixel en 2 secondes, puis traîner la souris du pixel actuel au pixel requis également en 2 secondes.

>>> importer pyautogui
>>> pyautogui.MOVETO (138, 229, durée = 2)
>>> pyautogui.Dragto (238, 229, durée = 2)
>>> pyautogui.Dragto (238, 329, durée = 2)
>>> pyautogui.Dragto (138, 329, durée = 2)
>>> pyautogui.Dragto (138, 229, durée = 2)

Le code ci-dessus fera un programme de peinture carré en faisant glisser la souris.

Comment trouver les coordonnées d'un répertoire ou d'une icône de fichier

Pour trouver les coordonnées d'un fichier ou d'un répertoire, .position() la méthode est utilisée. Cette méthode renvoie les coordonnées auxquelles la souris est actuellement présente. Suivez les étapes données pour trouver des coordonnées

  1. Ouvrez la console Python
  2. Position de type ()
  3. Avant d'appuyer sur la touche «Entrer», déplacez la flèche de la souris vers l'icône, où vous souhaitez trouver des coordonnées
  4. Puis appuyez sur Entrée pour exécuter la commande

Gérer la pause et l'insuffisance

Vous écrivez un script pour automatiser les actions de votre souris et vous avez besoin d'une courte pause entre chaque commande. Comment allez-vous le gérer? Allez-vous utiliser .dormir() méthode de TEMPS module après chaque commande? Mais cela augmentera la durée de votre code. Cela peut être fait en définissant pyautogui.PAUSE variable au nombre de secondes, vous voulez une pause. Cela créera une pause après chaque commande. L'exemple ci-dessous s'arrête 3 secondes entre chaque commande.

>>> importer pyautogui
>>> pyautogui.Pause = 3
>>> pyautogui.MOVETO (100100)
>>> pyautogui.MOVETO (200 200)

Python a également un Défaut fonctionnalité. Pour activer cette fonctionnalité, nous définissons pyautogui.Échoue à vrai. Comment ça marche? Par exemple, votre affichage a une résolution de 1366 x 768. Si vous déplacez la souris vers (1500.1500), le programme se bloquera en augmentant FailsAfEEException. Vous pouvez gérer cette exception soit en utilisant une déclaration Try and Sauf, soit en désactivant Pyautogui.Défaut. En désactivant la fonctionnalité Failsafe, le programme n'augmentera pas cette exception.

>>> importer pyautogui
>>> pyautogui.Failsafe = false
>>> pyautogui.taille()
Taille (largeur = 1366, hauteur = 768)
>>> pyautogui.MOVETO (1500,1500)
>>> pyautogui.MOVETO (100100)

Dans l'exemple ci-dessus, nous avons déplacé la souris sur (1500,1500) pixel mais l'écran a (1366 768) pixels. Le programme a ignoré cette exception.

Envoi d'une chaîne à partir du clavier

Pyautogui fournit une fonctionnalité pour passer une chaîne du clavier. Cela peut être fait en utilisant .Méthode TypeWrite () de ce module. Avant de passer la chaîne du clavier, concentrez-vous sur la fenêtre où vous allez passer la chaîne. Pour nous concentrer sur la fenêtre requise, nous pouvons utiliser .Méthode cliquez sur ().

Nous avons utilisé un point-virgule entre les deux commandes car elle se concentre sur l'éditeur de texte et transmet la chaîne l'une derrière l'autre. Maintenant, la question est de savoir comment passer les touches «alt» ou «décalage». Ces clés peuvent être représentées par de courtes valeurs de chaîne. Certaines valeurs de chaîne sont données ci-dessous.

Valeurs de chaîne de touches
Keys alt gauche et droit 'Altleft', 'Altright'
Keys de changement de vitesse gauche et droite 'Shiftleft', 'shiftright'
Keys de commande gauche et droite 'Ctrlleft', 'Ctrlright'
PAGE UP ET PAGE DOWN KEYS 'PageUp', 'Pagedown'
Backspace et supprimer les touches «backspace», «supprimer»
Les clés de flèche vers le haut, vers le bas, la gauche et la droite ', «vers le bas», «gauche», «droite»
Caps Lock Key 'Capslock'
Entrez la touche 'Entrée'
ESC Key 'ESC'
Key Tab Key 'Tab'
Home and End Keys 'Home', 'fin'
F1 à F12 Keys 'F1', 'F2',… . , 'F12'
Clé de verrouillage num 'numlock'
Clé PRTSC «PrintScreen»
Insérer la clé «insérer»

Afin de passer l'une des clés ci-dessus, nous utilisons ces valeurs de chaîne sous forme de liste. L'exemple suivant clarifiera cela. Le code passe deux fois «capslock». Première fois sous forme de liste et deuxième chaîne simple. Passer 'Capslock' dans la liste appuie sur la touche 'Caps Lock. Et la deuxième `` capslock '' simplement écrire 'capslock' dans le capital car la touche 'capslock' est appuyée en premier.

>>> importer pyautogui
>>> pyautogui.TypeWrite (['Capslock']); pyautogui.TypeWrite ('Capslock')
Capslock >>> capslock

Raccourcis pressé

Un raccourci est la combinaison de clés pour effectuer certaines tâches. Par exemple, le raccourci «Alt + F4» est utilisé pour fermer la fenêtre actuelle. Une combinaison de touches peut également être transmise du clavier à l'aide du module Pyautogui. Pour appuyer sur «Alt + F4», nous appuyons d'abord sur la touche «Alt» puis appuyez sur la touche «F4». Après avoir libéré la clé «F4», nous libérons la touche «alt». Ici, nous utiliserons .KeyUp () et .touche Bas() Méthodes pour appuyer sur une combinaison de clés. L'exemple suivant montre une appuyer sur la touche «Alt» et la suppression et la main de la touche «F4».

importer pyautogui
heure d'importation
pyautogui.Keydown ('alt')
pyautogui.touche Bas(<'f4')
temps.dormir(.5)
pyautogui.KeyUp ('F4')
pyautogui.KeyUp ('alt')

NOTE: Dans l'exemple ci-dessus, nous n'avons pas utilisé la liste de la valeur de la chaîne de la clé «alt» et «f4». La liste de la valeur de la chaîne n'est transmise qu'à .TypeWrite () méthode.

Il est très compliqué d'appuyer et de maintenir la touche 'Alt', puis appuyez sur la touche 'F4' et après avoir relâché la touche 'F4', puis relâchez la touche 'alt'. Cela peut être fait simplement en utilisant .Hotky () méthode. L'exemple suivant effacera le concept.

importer pyautogui
heure d'importation
pyautogui.Hotky («Alt», «F4»)

Prendre et analyser la capture d'écran

Nous pouvons également prendre une capture d'écran en utilisant Python. Offres du module Pyautogui .capture d'écran() Méthode pour prendre la capture d'écran de l'écran actuel. La capture d'écran peut être affichée en utilisant .montrer() méthode. Exécutez la commande suivante pour prendre une capture d'écran et afficher.

>>> importer pyautogui
>>> img = pyautogui.capture d'écran()
>>> img.montrer()

Lorsque vous exécutez les commandes ci-dessus pour prendre une capture d'écran, elle sera enregistrée dans la variable «IMG». Nous pouvons maintenant appeler d'autres méthodes sur la variable «IMG».

Nous pouvons obtenir un tuple des valeurs RVB de notre pixel requis en utilisant .getPixel () Méthode sur la variable 'img'. Argument adopté à .La méthode getPixel () est un tuple contenant les coordonnées x et y de la capture d'écran. Exécutez la commande suivante dans le shell interactif.

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

De plus, nous pouvons obtenir la taille de l'image en utilisant la commande suivante

>>> img.taille
(1366, 768)

Nous pouvons vérifier si les pixels d'écran donnés correspondent à la valeur RVB donnée ou non. Cela peut être fait en utilisant .pixelmatchescolor () méthode. Un total de trois arguments sont transmis à cette méthode. Les deux premiers arguments sont les coordonnées X et Y de l'écran et le troisième argument est un tuple de valeurs RVB. Cette méthode renvoie «vrai» si la couleur correspond à Pixel autrement «false». Cette méthode peut être utilisée comme suit

>>> pyautogui.PixelMatcheScolor (2,3, (85,82,74)))
Vrai
>>> pyautogui.PixelMatchScolor (3,5, (52,85,74)))
FAUX

Nous avons vu des bases, et maintenant dans les sections suivantes, nous verrons certains cas d'utilisation de l'automatisation de l'interface graphique à l'aide du module Pyautogui.

Ouvrant automatiquement différents fichiers pour vous

Tous les jours dans votre bureau, vous devez ouvrir de nombreux fichiers pour entrer manuellement certaines données des employés. C'est un peu ennuyeux à faire. Accédez d'abord au répertoire des documents, puis accédez à un autre répertoire et ouvrez un fichier, puis revenez au répertoire de documents et obtenez un autre répertoire et faites la même chose, etc.

Cela peut être fait simplement en écrivant simplement un script python. Ce que vous devez faire est d'exécuter le script uniquement et le script ouvrira tous les fichiers.

Pour effectuer cette tâche, tout d'abord vous avez pour localiser les coordonnées de la suite

  1. Icône de chaque répertoire
  2. Icône de chaque fichier
  3. Minimiser le bouton des fichiers

Comment trouver les coordonnées a été expliquée plus tôt.

# Importation du module Pyautogui
importer pyautogui
# Génération d'une pause de 1.5 secondes après chaque commande
pyautogui.Pause = 1.5
# Déplacement de la souris vers l'icône «ce PC» sur la barre des tâches
pyautogui.MOVETO (346 752)
# cliquer sur l'icône «ce PC»
pyautogui.Cliquez sur()
# Déplacement de la souris vers l'icône du répertoire «documents»
pyautogui.MOVETO (95 184)
# Cliquez sur le répertoire «documents»
pyautogui.Cliquez sur()
# Déplacement de la souris vers le répertoire dans le répertoire «documents»
pyautogui.MOVETO (249 107)
# double clic pour ouvrir le répertoire
pyautogui.DoubleClick ()
# Déplacement de la souris dans le fichier pour ouvrir
pyautogui.MOVETO (249 108)
# Double-cliquez sur le fichier à ouvrir
pyautogui.DoubleClick ()
# Déplacement de la souris sur le bouton Minimiser
pyautogui.MOVETO (1310,47)
# cliquez pour minimiser le fichier
pyautogui.Cliquez sur()

Dans le code ci-dessus, nous ouvrons un seul fichier. De même, vous pouvez étendre le code pour ouvrir plusieurs fichiers.

J'ai l'air occupé sur le système

Vous êtes à votre travail et vous ne travaillez pas sur le système, mais votre système a une application installée qui peut deviner si vous êtes assis inactif ou travaille sur le système en utilisant le mouvement de la souris. Vous voulez donc automatiser la souris pour se déplacer après chaque court intervalle de temps.

Cela peut être fait en écrivant un petit script python en utilisant Pyautogui module.

importer pyautogui
# Génération d'une pause de 5 secondes entre le mouvement de la souris
pyautogui.Pause = 5
essayer:
# Exécuter une boucle infinie
Bien que vrai:
# Déplacement de la souris vers (200 300) coordonnées en 1 seconde
pyautogui.MOVETO (200 300, durée = 1)
# Déplacement de la souris vers (201,310) coordonnée en 1 seconde
pyautogui.MOVETO (201,310, durée = 1)
sauf le clavier Interrupteur:
imprimer («quitter»)

Dans le code ci-dessus, nous déplaçons la souris d'un endroit à un autre endroit après toutes les 5 secondes. Nous pouvons quitter ce code en appuyant sur «Ctrl + C».

Conclusion

Dans ce blog, nous avons discuté de la façon dont vous pouvez utiliser le module Pyautogui pour automatiser l'interface graphique du système. Différentes fonctions de ce module ont été expliquées et vous pouvez automatiser presque tout ce qui peut être fait en utilisant le clavier et la souris en utilisant ces fonctions.