Un robot pour automatiser des tâches sur une interface graphique

Magazine
Marque
GNU/Linux Magazine
Numéro
187
Mois de parution
novembre 2015
Domaines


Résumé
Parfois il faut réaliser plusieurs fois les mêmes actions sur une application ou sur des pages Web. Cela peut être pour réaliser des tests en cours de développement ou plus simplement pour les utiliser. Un robot permet d'automatiser les tâches. Dans le cas d'un jeu, il pourra même jouer à votre place...

L'objectif

Nous allons créer un robot capable de réaliser toutes les opérations répétitives du jeu Forge of Empires (http://fr.forgeofempires.com). Dans ce jeu de « stratégie », il faut construire une ville (voir figure 1) et produire des ressources en cliquant sur des bâtiments toutes les 5mn, 15mn, 1h, etc. Au plus le délai que vous sélectionnez est court, au plus vous produirez de ressources. Pour ne pas passer la journée à cliquer, autant demander au robot de le faire à notre place...

figure_01

Fig. 1: Une ville de Forge of Empires.

Les outils

- Python 3.4

- Navigateur Web Chromium version 41.0.2272.76 (Forge of Empires est un jeu qui nécessite flash 11.7 ou plus et il est plus simple de le faire tourner sur Chromium que sur Firefox)

Phase 1. Installer le module PyAutoGUI

Le module PyAutoGUI permet la création d'un robot en proposant une reconnaissance basique d'images : il retrouve les coordonnées à l'écran d'une image qui lui est proposée. Pour commencer, il faut bien...

Cet article est réservé aux abonnés. Il vous reste 93% à découvrir.
à partir de 21,65€ HT/mois/lecteur pour un accès 5 lecteurs à toute la plateforme
J'en profite


Articles qui pourraient vous intéresser...

Débugage facile avec Sentry

Magazine
Marque
GNU/Linux Magazine
HS n°
Numéro
111
Mois de parution
novembre 2020
Domaines
Résumé

Nous le savons tous, aucun code n’est exempt de bugs. Nous avons beau écrire tous les tests unitaires du monde, tous les tests fonctionnels, avoir une couverture du code par nos tests de 200 %, il y a toujours des bugs qui passent à travers les mailles du filet. Sentry est là pour vous aider à les trouver et à les corriger grâce à vos utilisateurs, et ce, sans qu’ils ne s’en rendent compte.

Résolution azimutale d’un RADAR à bruit : analyse et réalisation d’un RADAR à synthèse d’ouverture (SAR) par radio logicielle

Magazine
Marque
GNU/Linux Magazine
Numéro
242
Mois de parution
novembre 2020
Domaines
Résumé

Nous complétons la mesure de distance des cibles RADAR par la mesure d’azimut rendue possible par la synthèse d’ouverture d’antenne, afin de localiser leur position et ainsi d’identifier précisément leur nature par superposition sur une photographie aérienne. La souplesse de la radio logicielle est illustrée par la montée en fréquence (2,4 GHz), sans modifier aucun élément matériel autre que les antennes.

Débogage JavaScript côté client

Magazine
Marque
GNU/Linux Magazine
HS n°
Numéro
111
Mois de parution
novembre 2020
Domaines
Résumé

Si JavaScript a longtemps évoqué l’idée de petit script dans un site internet, il est aujourd’hui souvent utilisé comme fondation d’application web complexe (notamment via des frameworks comme ReactJS ou VueJS). Dans ce contexte d’usage avancé, il est nécessaire d’avoir en main les bons outils et techniques de débogage.

Principes de l’orienté objet en C++ : l’encapsulation

Magazine
Marque
GNU/Linux Magazine
Numéro
242
Mois de parution
novembre 2020
Domaines
Résumé

La programmation orientée objet obéit à des principes. Les 4 principaux principes sont l’encapsulation, l’héritage, le polymorphisme et la généricité. Que de noms barbares, que nous allons démystifier de manière logique ! Des exemples déclinés dans le langage C++ illustreront ces principes. Ce premier article traite de l’encapsulation.

Déboguer un exécutable Java

Magazine
Marque
GNU/Linux Magazine
HS n°
Numéro
111
Mois de parution
novembre 2020
Domaines
Résumé

On attribue souvent au succès de Java la relative simplicité de sa syntaxe et surtout son vaste écosystème. C’est oublier un point essentiel dans son adoption : son débogueur et ses fonctionnalités qui simplifient tant le travail d’analyse et de résolution d’une erreur à l’exécution.