Actionaz, un logiciel d'automatisation libre

59
28
fév.
2012
Technologie

Actionaz est un logiciel libre d'automatisation d'actions. Il vous permet de créer des scripts contenant des actions en utilisant une interface graphique. Plus besoin d'être un développeur pour profiter de l'automatisation sur PC ! Actionaz est disponible sous licence GNU/GPL et est développé en C++ avec l'aide du framework Qt. De ce fait, le logiciel fonctionne sur les systèmes d'exploitation basés sur GNU/Linux ainsi que sous Windows.

Son but est de vous éviter d'avoir à répéter des actions comme des clics ou des pressions de touches. Il comporte 42 actions différentes allant de la lecture d'un fichier son au téléchargement d'une page Web ou d'un fichier, en passant par la lecture ou l'écriture d'un fichier texte. Sous Windows, vous avez également la possibilité de créer des scripts exécutables qui pourront être démarrés sur un ordinateur où Actionaz n'est pas installé.

Logo Actionaz

Les utilisateurs avancés peuvent même ajouter du code ECMAScript (similaire à Javascript) aux actions pour personnaliser encore plus le déroulement de l'exécution d'un script. Ceux qui veulent aller encore plus loin peuvent même développer des scripts complètement en ECMAScript et les exécuter en utilisant le programme en ligne de commande ActExec.

Le code en Ecmascript vous permet d'utiliser l'ensemble des fonctionnalités proposées par la bibliothèque Qt ainsi qu'une trentaine d'objets plus simples à utiliser, voir la page du wiki. Vous pouvez par exemple ouvrir un serveur TCP ou UDP, exécuter des requêtes sur une base de données MySQL ou bien accéder à la base de registres de Windows. Un débogueur est disponible pour vous aider à corriger vos scripts. La documentation du logiciel est disponible en français et en anglais, bien que certaines parties soient en cours de traduction/rédaction.

Actionaz est actuellement l'un des seuls logiciels d'automatisation libre et gratuit fonctionnant sur Windows et GNU/Linux vous permettant de créer des actions sans avoir à apprendre un langage de programmation. On peut considérer AutoIt ou AutoHotkey comme des équivalents, bien qu'il faille apprendre à programmer dans un langage propriétaire pour pouvoir les utiliser, au contraire d'Actionaz.

Des contributeurs sont recherchés pour la traduction du logiciel dans d'autres langues ainsi que pour participer au développement. Vous pouvez vous référer à la liste des tâches prévues.

Le logiciel est disponible dans Debian depuis peu et est d'ores et déjà dans les dépôts de la prochaine version stable d'Ubuntu (12.04). Les contributions sont bienvenues pour créer des paquets pour les autres distributions. La dernière version disponible est la 3.2.2 du 29 janvier 2012.

  • # sikuli

    Posté par . Évalué à 9.

    Voir également Sikuli qui a le mérite d'utiliser une bibliothèque de reconnaissance d'images pour des actions de type clic, find, wait, …

    Très intuitif, même si cela requière d'écrire ses scripts en Jython.

    Multi plate-forme aussi.

    • [^] # Re: sikuli

      Posté par . Évalué à 2. Dernière modification le 28/02/12 à 22:26.

      L'idée est amusante.
      Après ça suppose d'avoir un environnement graphique.
      Et surtout de pouvoir prédire à quoi va ressembler l'écran.
      Et que celui-ci reste stable.
      Donc pas forcément très robuste.
      Mais ça peut dépanner.

      • [^] # Re: sikuli

        Posté par . Évalué à 2.

        Très pratique pour du test d'interface graphique quand justement l'interface graphique est spécifiée et qu'on veut s'assurer du résultat du rendu.

  • # Auto it

    Posté par . Évalué à 2.

    J'avais utilisé ce soft dans le passé pour faire des automatisations, mouvement de la souris sans présence humaine.

    Même avantage que les deux cités, interface graphique de prog et GUI, produit un .exe si besoin. Et il peut être copier sur une machine sans être admin.

    Khan

  • # xautomation

    Posté par . Évalué à 10.

    Pour les férus de ligne de commande, il y a aussi xautomation, qui comprend :

    • xte, génération d'évènements X (clavier ou souris) et attente en µs. Fonctionne pour contrôler un serveur X local ou distant.
    • visgrep (visual grep), qui cherche une image dans une autre et en renvoie les coordonnées (pour savoir où est un bouton connu sur l'écran et bouger la souris au bon endroit).
    • [^] # Re: xautomation

      Posté par . Évalué à 1. Dernière modification le 29/02/12 à 13:03.

      Je n'ai pas trouvé si le principe de visugrep de xautomation est disponible dans Actionaz. C'est mes yeux ou cela n'existe pas ?

      • [^] # Re: xautomation

        Posté par (page perso) . Évalué à 3. Dernière modification le 29/02/12 à 13:59.

        Peut-être pas de manière aussi complète, mais il y a une action "Trouver image" qui permet de chercher une image sur l'écran, dans une fenêtre ou dans une autre image. On peut ainsi stocker les coordonnées de l'image dans une variable qui peut ensuite être utilisée pour simuler un clic, déplacer une fenêtre, etc.

        Ça utilise OpenCV.

        • [^] # Re: xautomation

          Posté par . Évalué à 2. Dernière modification le 29/02/12 à 16:33.

          Ça utilise OpenCV.

          Tout comme Sikuli.
          Du coup il ne te manque pas grand'chose pour implémenter les fonctions click(image) et cie qui éviteront à l'utilisateur de gérer les coordonnées.

          • [^] # Re: xautomation

            Posté par . Évalué à 3.

            Pour info, un commentaire d'un journal récent[1] donne une implémentation en 1 ligne des freewares de type « drunken mouse » avec xautomation :

            while sleep $(( RANDOM % 20 )) ; do xte "mousermove $(( RANDOM % 100 - 50 )) $(( RANDOM % 100 - 50 ))" ; done

            [1] https://linuxfr.org/nodes/89566/comments/1323195

          • [^] # Re: xautomation

            Posté par . Évalué à 1.

            Oui, sauf qu'il peut être utile de passer par l'étape "coordonnées", avant de cliquer.
            Par exemple si tu trouves l'image sur l'écran, mais à un endroit qui n'a rien à voir, ou même qu'elle est due à la fenêtre d'un autre programme, il ne faudrait pas cliquer dessus.
            J'aurais tendance à vérifier que les coordonnées sont "plausibles" avant d'envoyer un signal de clic. Ce que ne permet pas le format click([image]).

  • # Sympa

    Posté par . Évalué à 4.

    Salut,
    J'ai installé Actionaz sur ma distrib et j'aime beaucoup l'interface. C'est assez intuitif et plutôt bien pensé.
    De tous les logiciel d'automatisation, c'est celui que je trouve le plus intuitif.

    D'un autre côté, je cherche une fonction de feu "Automate.exe" : tu clique sur "enregistrer", tu fais ce que tu souhaites faire et automate.exe enregistre tout, des coordonnées de la souris aux frappes du clavier. Inconvénient c'est beaucoup plus rigide car non éditable. Si tu as oublié une action dans le déroulement, tu es bon pour recommencer tout depuis le début. Est-ce que ce serait une fonction qui serait possible de mettre en place ? Où bien peut-être suis-je passé à côté de cette option ?

    Julien_c'est_bien (y'a pas que Seb)

    • [^] # Re: Sympa

      Posté par (page perso) . Évalué à 9.

      C'est une fonctionnalité très demandée et c'est prévu, malheureusement je suis le seul développeur du logiciel donc ça avance assez irrégulièrement…

      En fait mon souci est comment arriver à enregistrer des actions sans que ça crée du spam dans le script. Le mieux et le plus simple serait de réutiliser les actions existantes et essayer de "compresser" les évènements autant que possible. En tous cas j'ai fait pas mal de recherches à ce niveau et il y a déjà du code pour enregistrer des évènements, il s'agit maintenant de transformer tout ça en actions.

    • [^] # Re: Sympa

      Posté par . Évalué à 2.

      Salut,

      Je confirme l'impression donnée plus haut. C'est vraiment réussi et simple à appréhender. Je cherchais un logiciel d'automatisation et une semaine après je vois la dépêche sur Linuxfr. Je teste ActionAZ dans la foulée et après un essai je crois que je vais l'adopter.

      Après quelques manipulations, j'arrive à mes fins avec une application web que je dois tester. Maintenant j'aimerais récupérer un texte affiché sur une page HTML pour le mettre dans une variable et je n'ai pas vu d'actions correspondantes. Est-ce possible de faire cela avec ActionAZ ?

      En cherchant un peu, j'ai vu que la création d'un forum faisait partie de la "TODO list", car au final je ne sais pas par quel canal je peux faire remonter mes difficultés d'utilisation.

      Quoi qu'il en soit, beau travail et félicitations.

      • [^] # Re: Sympa

        Posté par . Évalué à 0.

        bon je n'ai pas vu comment éditer mon post alors je me réponds

        pour ActionAZ il existe un forum qui peut aider à résoudre vos difficultés d'utilisations
        http://www.jmgr.net/forum/

        ce lien pourrait être rajouté en fin d'article.

      • [^] # Re: Sympa

        Posté par . Évalué à 3.

        Pour automatiser le parcours d'un site web depuis un navigateur, je te conseille d'utiliser Selenium RC (Remote Control) ou bien WebDriver (inclus dans Selenium depuis la version 2).

        Tu disposes en plus de Selenium IDE, une extension Firefox pour faire du capture / replay qui est très utile avec Selenim RC, un peu moins avec WebDriver.

Suivre le flux des commentaires

Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.