Python

Automatisation de l'interface graphique à l'aide de Pyautogui, Python

Automatisation de l'interface graphique à l'aide de Pyautogui, Python
PYAUTOGUI est un module d'automatisation fourni par Python pour contrôler les fonctions du clavier et de la souris via un programme. Ce module a presque toutes les fonctions qui peuvent être exécutées par le clavier et la souris. Nous pouvons utiliser ces fonctions pour automatiser les actions de la souris et du 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 Terminal.

$ pip installer pyautogui

OU ALORS

$ pip3 installer pyautogui

À présent PYAUTOGUI est prêt à l'emploi.

Obtenir la résolution de l'affichage

Avant d'automatiser les actions de la souris, il est recommandé de connaître la résolution de l'affichage. Nous pouvons obtenir la résolution de l'affichage en utilisant .Taille() méthode de

PYAUTOGUI.  Voir ci-dessous pour obtenir la résolution de l'écran sous la forme de « largeur X hauteur » :

Python 2.7.15+ (par défaut, 7 oct. 2019, 17:39:04)
[CCG 7.4.0] sur linux2

Tapez "aide", "droit d'auteur", "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 dans le sens horizontal de l'affichage et 768 pixels dans le sens vertical de l'affichage.

Déplacer la souris sur l'écran

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

>>> importer pyautogui
>>> pyautogui.moveTo(100,100,duration=2)

Nous avons transmis trois arguments à .méthode moveTo(). Les deux premiers arguments sont obligatoires et indiquent 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 en un rien de temps.

Cliquer, faire défiler et faire glisser 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.

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

>>> importer pyautogui
>>> pyautogui.déplacer vers(300,201)
>>> pyautogui.Cliquez sur()

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

>>> pyautogui.déplacer vers(300,201)
>>> pyautogui.doubleClic()

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 défilera vers le haut et pour un entier négatif, il défilera vers le bas. Combien ça va défiler? Cela dépend de la valeur de l'entier.

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

Dans l'exemple ci-dessus, la souris fera d'abord défiler 20 unités vers le haut, puis elle fera défiler 20 unités vers le bas.

L'opération de déplacement de la souris peut également être appliquée à l'aide .glisser vers () 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 la durée du temps qui signifie combien de temps il faudra pour se déplacer vers la destination.

Pour voir l'opération de glissement, ouvrez la peinture, agrandissez la fenêtre, choisissez le crayon et exécutez les commandes suivantes dans le shell interactif.  Le code déplacera la souris sur (138,229) pixel en 2 secondes, puis fera glisser la souris du pixel actuel au pixel requis également en 2 secondes.

>>> importer pyautogui
>>> pyautogui.moveTo( 138, 229, durée=2)
>>> pyautogui.glisser vers (238, 229, durée=2)
>>> pyautogui.glisser vers (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 carré sur le programme de peinture 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, .positionner() la méthode est utilisée. Cette méthode renvoie les coordonnées auxquelles la souris est actuellement présente. Suivez les étapes indiquées pour trouver les coordonnées

  1. Ouvrez la console python
  2. Tapez la position()
  3. Avant d'appuyer sur la touche 'ENTER', déplacez la flèche de la souris sur l'icône, où vous voulez trouver les coordonnées
  4. Appuyez ensuite sur Entrée pour exécuter la commande

Gestion de PAUSE et FAILSAFE

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? Utiliserez-vous .dormir() méthode de TEMPS module après chaque commande? Mais cela augmentera la longueur de votre code. Cela peut être fait en définissant pyautogui.PAUSE variable au nombre de secondes pendant lesquelles vous souhaitez une pause. Cela créera une pause après chaque commande.  L'exemple ci-dessous marque une pause de 3 secondes entre chaque commande.

>>> importer pyautogui
>>> pyautogui.PAUSE=3
>>> pyautogui.déplacer vers (100,100)
>>> pyautogui.déplacer vers (200 200)

Python a également un SÉCURITÉ fonctionnalité. Pour activer cette fonctionnalité, nous définissons pyautogui.FAILSAFE à Vrai. Comment cela fonctionne? Par exemple, votre écran a une résolution de 1366 X 768. Si vous déplacez la souris sur (1500,1500), le programme plantera en levant FailSafeException. Vous pouvez gérer cette exception en utilisant l'instruction try and except ou en désactivant pyautogui.SÉCURITÉ. En désactivant la fonction FAILSAFE, le programme ne lèvera pas cette exception.

>>> importer pyautogui
>>> pyautogui.FAILSAFE=Faux
>>> pyautogui.Taille()
Taille (largeur = 1366, hauteur = 768)
>>> pyautogui.déplacer vers (1500, 1500)
>>> pyautogui.déplacer vers (100,100)

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 depuis le clavier

PYAUTOGUI fournit une fonctionnalité pour passer une chaîne à partir 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 se concentrer sur la fenêtre requise, nous pouvons utiliser .méthode click().

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

Clés                                                Valeurs de chaîne
Touches ALT gauche et droite                             'altleft' , 'altright'
Touches MAJ gauche et droite                           'shiftleft' , 'shiftright'
Touches de contrôle gauche et droite                          'ctrlleft' , 'ctrlright'
Touches PAGE UP et PAGE DOWN                           'pageup' , 'pagedown'
Touches RETOUR ARRIÈRE et SUPPRIMER                                                                                                      
Touches fléchées haut, bas, gauche et droite              'haut' , 'bas' , 'gauche' , 'droite'
Touche CAPS LOCK                                        'capslock'
Touche ENTRÉE                                            « entrée »
Touche ESC                                              'esc'
Touche TAB                                              'tab'
Touches ACCUEIL et FIN                                   'accueil' , 'fin'
Touches F1 à F12                                   'f1' , 'f2' ,… . , 'f12'
Touche VERR. NUM                                                                                           
Clé PRTSC                                            'printscreen'
INSÉRER la touche                                           '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 'capslock' deux fois. Première fois sous forme de liste et deuxième fois chaîne simple. Passer 'capslock' dans la liste appuie sur la touche 'CAPS LOCK'. Et le deuxième 'capslock' écrivez simplement 'capslock' en majuscule car la touche 'CAPSLOCK' est enfoncée en premier.

>>> importer pyautogui
>>>pyautogui.typewrite(['capslock']);pyautogui.taper('capslock')
CAPSLOCK>>> CAPSLOCK

Raccourcis en appuyant sur

Un raccourci est la combinaison de touches 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 depuis le clavier à l'aide du module PYAUTOGUI. Pour appuyer sur 'Alt + F4', nous appuyons d'abord sur la touche 'Alt' et maintenez-la enfoncée, puis appuyez sur la touche 'F4'. Après avoir relâché la touche 'F4', nous relâchons la touche 'Alt'. Ici, nous utiliserons .keyUp() et .touche Bas() méthodes pour appuyer sur une combinaison de touches.  L'exemple suivant montre que vous appuyez et maintenez enfoncée la touche 'Alt' et appuyez et maintenez enfoncée la touche 'F4' ensemble.

importer pyautogui
heure d'importation
pyautogui.keyDown('alt')
pyautogui.touche Bas(<'f4')
temps.dormir(.5)
pyautogui.keyUp('f4')
pyautogui.keyUp('alt')

REMARQUE: Dans l'exemple ci-dessus, nous n'avons pas utilisé la liste des valeurs de chaîne de la touche 'Alt' et 'F4'. La liste des valeurs de chaîne n'est transmise qu'à .écrire () méthode.

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

importer pyautogui
heure d'importation
pyautogui.raccourci('alt','f4')

Prendre et analyser une capture d'écran

Nous pouvons également prendre une capture d'écran en utilisant python. Les 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 .spectacle() méthode. Exécutez la commande suivante pour prendre une capture d'écran et l'afficher.

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

Lorsque vous exécutez les commandes ci-dessus pour prendre une capture d'écran, elle sera enregistrée dans la variable 'img'. Maintenant, nous pouvons 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 passé à .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.obtenirpixel((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 de l'écran donnés correspondent ou non à la valeur RVB donnée. Cela peut être fait en utilisant .pixelCorrespondanceCouleur() méthode. Un total de trois arguments sont passés à 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 'True' si la couleur correspond au pixel sinon 'False'. Cette méthode peut être utilisée comme suit

>>> pyautogui.pixelCorrespondanceCouleur(2,3,(85,82,74))
Vrai
>>> pyautogui.pixelCorrespondanceCouleur(3,5,(52,85,74))
Faux

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

Ouverture automatique de différents fichiers pour vous

Chaque jour dans votre bureau, vous devez ouvrir de nombreux fichiers pour saisir manuellement certaines données des employés. C'est une chose un peu ennuyeuse à faire. Allez d'abord dans le répertoire Documents puis allez dans un autre répertoire et ouvrez un fichier, puis revenez dans le répertoire Document et allez dans 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, vous devez tout d'abord localiser les coordonnées de la suite

  1. Icône de chaque répertoire
  2. Icône de chaque fichier
  3. Bouton Minimiser les fichiers

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

# importation du module pyautogui
importer pyautogui
# générer une pause de 1.5 secondes après chaque commande
pyautogui.PAUSE=1.5
# déplacer la souris sur l'icône « Ce PC » dans la barre des tâches
pyautogui.déplacer vers (346 752)
# en cliquant sur l'icône 'Ce PC'
pyautogui.Cliquez sur()
# déplacer la souris sur l'icône du répertoire 'Documents'
pyautogui.déplacer vers (95 184)
# en cliquant sur le répertoire 'Documents'
pyautogui.Cliquez sur()
# déplacer la souris vers le répertoire à l'intérieur du répertoire 'Documents'
pyautogui.déplacer vers (249 107)
# double-cliquer pour ouvrir le répertoire
pyautogui.doubleClic()
# déplacer la souris sur le fichier à ouvrir
pyautogui.déplacer vers (249 108)
# double-cliquer sur le fichier à ouvrir
pyautogui.doubleClic()
# déplacer la souris sur le bouton minimiser
pyautogui.déplacer vers (1310,47)
# cliquant 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.

Vous avez 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 inactif ou travaillez sur le système en utilisant le mouvement de la souris. Vous voulez donc automatiser le déplacement de la souris 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érer une pause de 5 secondes entre les mouvements de la souris
pyautogui.PAUSE=5
essayer:
# Exécution d'une boucle infinie
tant que vrai :
# déplacer la souris vers (200 300) coordonnées en 1 seconde
pyautogui.moveTo(200,300,duration=1)
# déplacer la souris vers (201.310) coordonnée en 1 seconde
pyautogui.moveTo(201,310,duration=1)
sauf KeyboardInterrupt :
print('Quitter')

Dans le code ci-dessus, nous déplaçons la souris d'un endroit à un autre 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 à l'aide du clavier et de la souris en utilisant ces fonctions.

Le bouton central de la souris ne fonctionne pas sous Windows 10
le bouton central de la souris vous aide à faire défiler de longues pages Web et des écrans contenant beaucoup de données. Si cela s'arrête, et bien v...
Comment changer les boutons gauche et droit de la souris sur un PC Windows 10
Il est tout à fait normal que tous les appareils de souris d'ordinateur soient conçus de manière ergonomique pour les droitiers. Mais il existe des so...
Émulez les clics de souris en survolant à l'aide de la souris sans clic dans Windows 10
L'utilisation d'une souris ou d'un clavier dans la mauvaise posture d'une utilisation excessive peut entraîner de nombreux problèmes de santé, notamme...