web-dev-qa-db-fra.com

Quel meilleur outil que Sikuli à utiliser pour l'automatisation d'écran sur Windows 7 (ou de préférence multi-plateforme)

J'utilise Sikuli pour l'automatisation d'écran. C'est-à-dire pour cliquer sur les éléments de l'interface graphique en fonction de leur apparence à l'écran. Cela fonctionne bien, mais Sikuli a un inconvénient majeur pour moi:

  • Démarrage lent pour chaque script (car la JVM entière est chargée à chaque fois).

De plus en plus sur Sikuli, il n'y a pas beaucoup de développement depuis l'année dernière, donc je suis à la recherche d'un outil d'automatisation de remplacement. Le gros ticket dont j'ai besoin est la sensibilisation à l'écran : l'outil doit "rechercher" certains éléments de l'interface utilisateur à l'écran, puis y déplacer la souris et émettre un Cliquez sur.

Une suggestion pour un outil plus rapide et peut-être mieux entretenu que Sikuli?

27
halloleo

Si vous souhaitez automatiser quoi que ce soit sous Windows, je vous recommanderais Automa - nouvel outil d'automatisation GUI léger. Il "trouve" simplement les éléments de l'interface utilisateur - tout ce que vous avez à faire est de fournir leurs noms comme les utilisateurs humains les verraient. Et il est en fait plus facile à utiliser que Sikuli - vous n'avez pas besoin de prendre de captures d'écran. Par exemple, si vous souhaitez vous connecter automatiquement à Windows Live Messenger, vous pouvez exécuter le script suivant:

start("messenger")
write("[email protected]", into="Email address")
write("secret", into="Password")
click("Sign in")

ou, de la même manière, pour saisir des informations d'identification et se connecter automatiquement à Facebook, il vous suffit d'exécuter les commandes suivantes:

start("firefox")
write("facebook.com", into="Location")
press(ENTER)
write("[email protected]", into="Email or Phone")
write("secret", into="Password")
click("Log in")

L'outil fonctionne sur la plupart des applications Windows (y compris les navigateurs Web), quelle que soit la technologie dans laquelle ils sont écrits. Il est écrit en Python et peut être utilisé à partir de n'importe quelle application Python via une bibliothèque api importable.

À propos d'Automa vs Sikuli: Automa est aussi haut niveau que Sikuli, mais ne nécessite pas de captures d'écran. Cela présente plusieurs avantages:

  • Les scripts Automa sont plus faciles à stocker dans un système de contrôle de version.
  • Les scripts Automa étant purement basés sur du texte, ils sont plus faciles à maintenir: imaginez une étiquette changeant quelque part. Cette étiquette pourrait apparaître dans plusieurs captures d'écran de Sikuli, que vous devrez ensuite reprendre. Avec Automa, tout ce que vous avez à faire est une simple recherche et remplacement dans les fichiers.
  • Il est plus stable en ce qui concerne les changements dans l'interface utilisateur - imaginez un changement de couleur ou un bouton se déplaçant de quelques pixels seulement.
  • D'autres fonctionnalités intéressantes telles que la possibilité d'écrire les scripts/tests avant que l'application n'existe - vous pouvez toujours écrire un script en cliquant sur "ici", tapez ceci, cliquez sur "là", déjà à partir des spécifications d'une fonctionnalité/programme. Avec des captures d'écran, ce n'est pas possible.

Divulgation: je travaille sur Automa .

7
Tytus

Vous souhaitez automatiser des applications WinForms ou des applications WPF? Si vous regardez WPF, je peux recommander le framework de test gratuit de Telerik . (Divulgation: je suis l'évangéliste de Test Studio pour Telerik.)

Le framework de test (ou le produit Test Studio complet) fonctionne très bien avec WPF car les scripts/tests sont basés sur les éléments, pas sur la position.

2
Jim Holmes