Outils pour utilisateurs

Outils du site


issue176:python

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
issue176:python [2022/01/03 09:37] d52frissue176:python [2022/01/06 15:28] (Version actuelle) andre_domenech
Ligne 3: Ligne 3:
 Once things quieted down a bit around the old homestead, I realized that the Cosmic Muffin was trying to tell me something. So I started looking at the latest documentation for pyautogui and found that Al Sweigart has really updated things quite a bit. You can find that documentation at https://pyautogui.readthedocs.io/en/latest/index.html. You might want to get some more background by looking at his online version of Automating The Boring Stuff with Python at https://automatetheboringstuff.com/ and jumping to chapter 20. I STRONGLY suggest that you purchase this book for your library and support Al for all his wonderful work over the years. (Can you tell he’s one of my favorite authors?).** Once things quieted down a bit around the old homestead, I realized that the Cosmic Muffin was trying to tell me something. So I started looking at the latest documentation for pyautogui and found that Al Sweigart has really updated things quite a bit. You can find that documentation at https://pyautogui.readthedocs.io/en/latest/index.html. You might want to get some more background by looking at his online version of Automating The Boring Stuff with Python at https://automatetheboringstuff.com/ and jumping to chapter 20. I STRONGLY suggest that you purchase this book for your library and support Al for all his wonderful work over the years. (Can you tell he’s one of my favorite authors?).**
  
-Il est inhabituel pour moi de recevoir des questions plus d'une fois par mois. Cependant, aujourd'hui, alors que je réfléchissais à ce que j'allais faire pour mon article sur Python du mois de décembre, j'ai reçu une question d'un ami qui voulait savoir ce que je pouvais lui suggérer pour faire des tests automatisés de son programme. Immédiatement, j'ai suggéré pyautogui. Je lui ai fait passer une copie de mon article du FCM#151, qui est sorti en novembre 2019. Quelques heures plus tard, un autre ami et client m'a contacté et m'a demandé quelle serait une bonne bibliothèque pour l'émulation de la souris et du clavier. Une fois de plus, j'ai immédiatement suggéré pyautogui et lui ai également envoyé une copie de l'article.+Il est inhabituel pour moi de recevoir des questions plus d'une fois par mois. Cependant, aujourd'hui, alors que je réfléchissais à ce que j'allais faire pour mon article sur Python du mois de décembre, j'ai reçu la question d'un ami qui voulait savoir ce que je pouvais lui suggérer pour faire des tests automatisés de son programme. Immédiatement, j'ai suggéré pyautogui. Je lui ai donné une copie de mon article du FCM n°151, qui est sorti en novembre 2019. Quelques heures plus tard, un autre ami et client m'a contacté et m'a demandé quelle serait une bonne bibliothèque pour l'émulation de la souris et du clavier. Une fois de plus, j'ai immédiatement suggéré pyautogui et lui ai également envoyé une copie de l'article.
  
-Une fois que les choses se sont calmées un peu autour de la vieille maison, j'ai réalisé que le Cosmic Muffin essayait de me dire quelque chose. J'ai donc commencé à consulter la dernière documentation de pyautogui et j'ai découvert qu'Al Sweigart avait mis les choses à jour. Vous pouvez trouver cette documentation à l'adresse https://pyautogui.readthedocs.io/en/latest/index.html. Pour en savoir plus, vous pouvez consulter sa version en ligne de Automating The Boring Stuff with Python à l'adresse https://automatetheboringstuff.com/ et sauter au chapitre 20. Je vous conseille vivement d'acheter ce livre pour votre bibliothèque et de soutenir Al pour tout le travail qu'il a accompli au fil des ans. (Pouvez-vous dire qu'il est l'un de mes auteurs préférés ?).+Une fois que les choses se sont calmées un peu autour de la maison, j'ai réalisé que le Cosmic Muffin essayait de me dire quelque chose. J'ai donc commencé à consulter la dernière documentation de pyautogui et j'ai découvert qu'Al Sweigart avait vraiment mis les choses à jour. Vous pouvez trouver cette documentation à l'adresse https://pyautogui.readthedocs.io/en/latest/index.html. Pour en savoir plus, vous pouvez consulter sa version en ligne de Automating The Boring Stuff with Python (Automatiser les trucs ennuyeux avec Python) à l'adresse https://automatetheboringstuff.com/ et sauter au chapitre 20. Je vous conseille vivement d'acheter ce livre pour votre bibliothèque et de soutenir Al pour tout le travail formidable qu'il a accompli au fil des ans. (Avez-vous compris qu'il est l'un de mes auteurs préférés ?)
  
  
Ligne 49: Ligne 49:
 Si les versions de python et pip ne sont pas les mêmes, choisissez l'une des versions et utilisez la bonne combinaison python et pip dans laquelle vous souhaitez installer pyautogui. Comme les miennes sont les mêmes, j'ai juste utilisé la commande pip. Si les versions de python et pip ne sont pas les mêmes, choisissez l'une des versions et utilisez la bonne combinaison python et pip dans laquelle vous souhaitez installer pyautogui. Comme les miennes sont les mêmes, j'ai juste utilisé la commande pip.
  
-La page suivante, à droite, est une version abrégée de la sortie du terminal de mon système lorsque j'ai installé pyautogui sur mon système (la sortie de votre terminal sera probablement un peu différente)...+Sur la page suivante, à droite, se trouve une version abrégée de la sortie du terminal de mon système lorsque j'ai installé pyautogui (la sortie de votre terminal sera probablement un peu différente).
  
-Maintenant que pyautogui est installé, vous devrez peut-être installer une autre chose. Si vous essayez d'exécuter pyautogui maintenant, il se peut qu'il vous manque un paquet et que vous obteniez une erreur. Vous devez être sûr que le paquet scrot est installé sur votre système Linux. Vous pouvez le faire en utilisant le terminal encore ouvert pour le vérifier.+Maintenant que pyautogui est installé, vous devrez peut-être installer encore une chose. Si vous essayez d'exécuter pyautogui maintenant, il se peut qu'il vous manque un paquet et que vous obteniez une erreur. Vous devez être sûr que le paquet scrot est installé sur votre système Linux. Vous pouvez le faire en utilisant le terminal encore ouvert pour le vérifier.
  
 $ sudo apt install scrot $ sudo apt install scrot
Ligne 72: Ligne 72:
 sw, sh = pyautogui.size()** sw, sh = pyautogui.size()**
  
-Avec le terminal toujours ouvert, essayez la commande suivante...+Le terminal étant toujours ouvert, essayez la commande suivante :
  
 $ python -m mouseinfo $ python -m mouseinfo
  
-Si tout fonctionne, vous devriez voir une fenêtre ouverte qui ressemble à quelque chose comme ceci...+Si tout fonctionne, vous devriez voir une fenêtre ouverte qui ressemble à quelque chose comme ceci :
  
 Il s'agit d'un nouvel utilitaire fourni avec pyautogui qui rend l'automatisation de la souris et du clavier vraiment simple. Il vous montrera les positions X et Y sur l'écran où vous devez diriger le pointeur de la souris pour permettre la saisie de texte ou les clics de souris. Remarquez les quatre boutons sur la droite (en haut) de la fenêtre. Les boutons Log All (F5) et Log XY (F6) vous permettront d'enregistrer les positions de la souris dans un fichier, ainsi que le bouton Save Log en bas à droite de la fenêtre. Il s'agit d'un nouvel utilitaire fourni avec pyautogui qui rend l'automatisation de la souris et du clavier vraiment simple. Il vous montrera les positions X et Y sur l'écran où vous devez diriger le pointeur de la souris pour permettre la saisie de texte ou les clics de souris. Remarquez les quatre boutons sur la droite (en haut) de la fenêtre. Les boutons Log All (F5) et Log XY (F6) vous permettront d'enregistrer les positions de la souris dans un fichier, ainsi que le bouton Save Log en bas à droite de la fenêtre.
Ligne 82: Ligne 82:
 Maintenant, écrivons un programme simple pour déplacer la souris sur l'écran, juste pour vérifier que tout fonctionne. Maintenant, écrivons un programme simple pour déplacer la souris sur l'écran, juste pour vérifier que tout fonctionne.
  
-Enregistrez le programme sous le nom de "test1.py", mais avant d'exécuter le programme, examinons quelques lignes. La première ligne que nous allons examiner est...+Enregistrez le programme sous le nom de « test1.py », mais avant d'exécuter le programme, examinons quelques lignes. La première ligne que nous allons examiner est :
  
 sw, sh = pyautogui.size() sw, sh = pyautogui.size()
Ligne 95: Ligne 95:
 The parameters are (Xposition, Yposition, Duration). Be sure you use proper values for your system. Remember that Xposition is the horizontal or right/left position on the screen and the Yposition is the vertical or top/bottom position on your screen. The Duration setting is how many milliseconds the movement will take. It’s completely optional, but by setting the value at 0.50, we can actually watch the mouse cursor move on the screen. In your future use, you might want to not include the duration parameter, to speed things up.** The parameters are (Xposition, Yposition, Duration). Be sure you use proper values for your system. Remember that Xposition is the horizontal or right/left position on the screen and the Yposition is the vertical or top/bottom position on your screen. The Duration setting is how many milliseconds the movement will take. It’s completely optional, but by setting the value at 0.50, we can actually watch the mouse cursor move on the screen. In your future use, you might want to not include the duration parameter, to speed things up.**
  
-Celle-ci renvoie la largeur et la hauteur de votre écran en pixels. J'ai deux moniteurs connectés à mon système, donc Linux combine la largeur des deux et la rapporte comme largeur. Il prend la hauteur du moniteur principal. Veillez à prendre ces valeurs en considération lorsque vous utilisez les fonctions moveTo.+Celle-ci renvoie la largeur et la hauteur de votre écran en pixels. J'ai deux moniteurs connectés à mon système, donc Linux combine la largeur des deux et la rapporte comme largeur. Il prend la hauteur du moniteur principal. Veillez à prendre ces valeurs en considération lorsque vous utilisez des fonctions moveTo.
  
-En parlant de la fonction moveTo, la prochaine ligne que nous devons examiner est la première ligne moveTo.+À propos de la fonction moveTo, la prochaine ligne que nous devons examiner est la première ligne moveTo :
  
 pyautogui.moveTo(10, 10, duration=0.50) pyautogui.moveTo(10, 10, duration=0.50)
  
-Les paramètres sont (Xposition, Yposition, Duration). Assurez-vous d'utiliser les valeurs appropriées pour votre système. Rappelez-vous que Xposition est la position horizontale ou droite/gauche sur l'écran et que Yposition est la position verticale ou haut/bas sur votre écran. Le paramètre Duration indique le nombre de millisecondes que prendra le mouvement. C'est complètement facultatif, mais en fixant la valeur à 0,50, nous pouvons réellement regarder le curseur de la souris se déplacer sur l'écran. Dans votre utilisation future, vous pourriez ne pas inclure le paramètre de durée, pour accélérer les choses.+Les paramètres sont (Xposition, Yposition, Duration). Assurez-vous d'utiliser les valeurs appropriées pour votre système. Rappelez-vous que Xposition est la position horizontale ou droite/gauche sur l'écran et que Yposition est la position verticale ou haut/bas sur votre écran. Le paramètre Duration indique le nombre de millisecondes que prendra le mouvement. C'est complètement facultatif, mais en fixant la valeur à 0,50, nous pouvons réellement regarder le curseur de la souris se déplacer sur l'écran. À l'avenir, vous pourriez ne pas inclure le paramètre de durée, pour accélérer les choses.
  
  
Ligne 120: Ligne 120:
 Nous nous déplacerons vers la partie supérieure gauche du moniteur, puis vers la partie supérieure droite du moniteur, puis vers la partie inférieure droite du moniteur et enfin vers le centre du moniteur. Nous nous déplacerons vers la partie supérieure gauche du moniteur, puis vers la partie supérieure droite du moniteur, puis vers la partie inférieure droite du moniteur et enfin vers le centre du moniteur.
  
-Ensuite, la souris se déplacera à la position 139, 250 et effectuera un clic de souris dans l'éditeur de texte pour s'assurer qu'il est sélectionné comme cible pour le texte que nous enverrons éventuellement.+Ensuite, la souris se déplacera à la position 139, 250 et effectuera un clic de souris dans l'éditeur de texte pour s'assurer qu'il est sélectionné comme cible pour le texte que nous enverrons ultérieurement :
  
 pyautogui.click(139, 250) pyautogui.click(139, 250)
  
-Vous voudrez ouvrir un éditeur de texte et vous assurer que la zone de saisie de l'éditeur sera disponible pour cela, puisque nous sommes sur le point de saisir du texte dans l'éditeur de texte, en utilisant la fonction write.+Ouvrez un éditeur de texte et vous assurer que la zone de saisie de l'éditeur sera disponible pour cela, puisque nous sommes sur le point de saisir du texte dans l'éditeur de texte, en utilisant la fonction write :
  
 pyautogui.write('Bonjour de Python !!!') pyautogui.write('Bonjour de Python !!!')
  
-Comme vous pouvez le deviner, en tant que lecteur observateur que vous êtes, la fonction write émule les pressions de touches « standard » du clavier, et écrit ce qui est défini comme paramètre de la fonction à la position actuelle de la souris. La dernière chose qui est faite dans notre programme de test est l'affichage d'une boîte de message de pyautogui indiquant que le programme est terminé et qu'il attend que vous cliquiez manuellement sur le bouton OK.+Comme vous pouvez le deviner, en tant que lecteur observateur, la fonction write émule les pressions de touches « standard » du clavier, et écrit ce qui est défini comme paramètre de la fonction à la position actuelle de la souris. La dernière chose qui est faite dans notre programme de test est l'affichage d'une boîte de message de pyautogui indiquant que le programme est terminé et qu'il attend que vous cliquiez manuellement sur le bouton OK :
  
 pyautogui.alert(text='Finished!', title='PYAUTOGUI TEST', button='OK') pyautogui.alert(text='Finished!', title='PYAUTOGUI TEST', button='OK')
Ligne 143: Ligne 143:
 Now, while this isn’t the most useful example of the capabilities of pyautogui, our next project should give you a really good one.** Now, while this isn’t the most useful example of the capabilities of pyautogui, our next project should give you a really good one.**
  
-Avec un peu de chance, vous avez toujours le programme mouseinfo en cours d'exécution. Vous pouvez déplacer la souris vers les positions qui sont codées dans le programme de démonstration, juste pour vous assurer qu'elles conviennent à votre système. Si ce n'est pas le cas, il vous suffit de modifier les positions dans les fonctions moveTo ou click pour vous assurer que tout fonctionne.+Avec un peu de chance, le programme mouseinfo est toujours en cours d'exécution. Vous pouvez déplacer la souris vers les positions qui sont codées dans le programme de démonstration, juste pour vous assurer qu'elles conviennent à votre système. Si ce n'est pas le cas, il vous suffit de modifier les positions dans les fonctions moveTo ou click pour vous assurer que tout fonctionne.
  
-Maintenant, en vous assurant que l'éditeur de texte est ouvert et au bon endroit, vous pouvez simplement ouvrir un autre terminal dans le dossier où vous avez enregistré votre programme python test1.py, et l'exécuter.+Maintenant, en vous assurant que l'éditeur de texte est ouvert et au bon endroit, vous pouvez ouvrir un autre terminal dans le dossier où vous avez enregistré votre programme python test1.py, et l'exécuter :
  
 $python test1.py $python test1.py
Ligne 151: Ligne 151:
 Si tout a fonctionné correctement, vous pouvez voir le pointeur de la souris se déplacer sur l'écran, pour finalement se placer dans l'éditeur de texte et envoyer le message. Si tout a fonctionné correctement, vous pouvez voir le pointeur de la souris se déplacer sur l'écran, pour finalement se placer dans l'éditeur de texte et envoyer le message.
  
-Si cet exemple n'est pas le plus utile pour montrer les capacités de pyautogui, notre prochain projet devrait maintenant vous en donner un très bon.+Si cet exemple n'est pas le plus utile pour montrer les capacités de pyautogui, notre prochain projet devrait vous en donner un bien meilleur.
  
  
Ligne 160: Ligne 160:
 You can use the MouseInfo program to verify the positions of the Entry widgets on your system and the button by running the login.py program, then watching the XY Position as you hover over the widgets. If they are off a great deal, you can modify it in our test2 program, which is presented next page, top right.** You can use the MouseInfo program to verify the positions of the Entry widgets on your system and the button by running the login.py program, then watching the XY Position as you hover over the widgets. If they are off a great deal, you can modify it in our test2 program, which is presented next page, top right.**
  
-J'ai travaillé pour Don Rozenberg sur un nouveau tutoriel pour la prochaine version de PAGE. Le premier projet du tutoriel est de créer un formulaire de connexion qui a une boîte de saisie pour le nom d'utilisateur et le mot de passe, et un bouton pour « soumettre » l'information. Je n'entrerai pas beaucoup dans le code et le projet réel peut être trouvé sur le dépôt (mentionné à la fin de cet article). Le programme ressemble à quelque chose comme ceci...+Je travaille pour Don Rozenberg sur un nouveau tutoriel pour la prochaine version de PAGE. Le premier projet du tutoriel est de créer un formulaire de connexion qui a une boîte de saisie pour le nom d'utilisateur et le mot de passe, et un bouton pour « soumettre » l'information. Je n'entrerai pas beaucoup dans le code et le projet réel peut être trouvé sur le dépôt (mentionné à la fin de cet article). Le programme ressemble à quelque chose comme ceci :
  
 La raison pour laquelle j'ai choisi ce programme est que je sais exactement où le formulaire apparaîtra à l'écran, à chaque fois qu'il s'exécute, ce qui en fait une démo facile à suivre pour vous. La raison pour laquelle j'ai choisi ce programme est que je sais exactement où le formulaire apparaîtra à l'écran, à chaque fois qu'il s'exécute, ce qui en fait une démo facile à suivre pour vous.
Ligne 186: Ligne 186:
 Maintenant, vous aurez, je l'espère, téléchargé tout le code du dépôt et l'aurez décompressé dans un dossier pratique ; ensuite, ouvrez deux terminaux dans ce dossier. Le premier terminal est destiné à exécuter le programme login.py et le second est destiné à exécuter le programme test2.py. Maintenant, vous aurez, je l'espère, téléchargé tout le code du dépôt et l'aurez décompressé dans un dossier pratique ; ensuite, ouvrez deux terminaux dans ce dossier. Le premier terminal est destiné à exécuter le programme login.py et le second est destiné à exécuter le programme test2.py.
  
-Donc, ouvrez votre premier terminal et tapez...+Bon. Ouvrez votre premier terminal et tapez :
  
 $python login.py $python login.py
  
-Dans le second terminal, en vous assurant que rien n'obstrue le formulaire de connexion, vous devez taper...+Dans le second terminal, en vous assurant que rien n'obstrue le formulaire de connexion, vous devez taper :
  
 $python test2.py $python test2.py
Ligne 216: Ligne 216:
 Une fois le temps d'attente écoulé, vous devriez voir apparaître le mot « password », suivi d'un autre temps d'attente. Une fois le temps d'attente écoulé, vous devriez voir apparaître le mot « password », suivi d'un autre temps d'attente.
  
-Enfin, une autre période de sommeil devrait expirer et le bouton Continuer devrait être « pressé », ce qui fait apparaître une boîte de message du programme.+Enfin, une autre période de sommeil devrait expirer et le bouton Continuer devrait être « enfoncé », ce qui fait apparaître une boîte de message du programme.
  
 Immédiatement après, la boîte de message de pyautogui devrait également apparaître. Immédiatement après, la boîte de message de pyautogui devrait également apparaître.
Ligne 222: Ligne 222:
 Cliquez sur les boutons OK des deux boîtes de message, et les programmes devraient se terminer. Cliquez sur les boutons OK des deux boîtes de message, et les programmes devraient se terminer.
  
-Pyautogui peut faire beaucoup plusnous n'avons fait qu'en effleurer la surface. Prenez le temps de lire la documentation, et le chapitre 20 d'Al, pour profiter de cette formidable ressource.+Pyautogui peut faire beaucoup plus nous n'avons fait qu'en effleurer la surface. Prenez le temps de lire la documentation, et le chapitre 20 d'Al, pour profiter de cette formidable ressource.
  
 Le dépôt pour le code est à https://github.com/gregwa1953/FCM-176. Le dépôt pour le code est à https://github.com/gregwa1953/FCM-176.
issue176/python.1641199036.txt.gz · Dernière modification : 2022/01/03 09:37 de d52fr