Sikuli pilote le Mac avec des screenshots

Arnaud de la Grandière |
Sikuli [0.9.8 - Leopard : 10 Mo - Snow Leopard : 6,9 Mo - Gratuit] est un projet de recherche du célèbre Massachusetts Institute of Technology. Il s'agit d'un environnement de programmation qui partage bien des points communs avec AppleScript, dans la mesure où il permet de piloter les applications de votre Mac.

L'originalité de Sikuli repose cependant sur le moyen d'indiquer à quels éléments de l'interface on souhaite s'adresser : il suffit pour cela de prendre une capture d'écran. En tapant commande-majuscule-2, vous pourrez ainsi indiquer une zone graphique au logiciel de script. Celui-ci cherchera une zone graphiquement similaire lors de l'exécution. En somme, au lieu d'utiliser un système de communication inter-applications comme le fait AppleScript, Sikuli simule les entrées de l'utilisateur au clavier et à la souris, ce qui lui permet de piloter à peu près n'importe quoi, y compris des pages web.

Le langage utilisé est Jython, une version de Python basée sur une VM Java, ce qui permet d'utiliser les nombreux exemples de code disponible en Python. Le logiciel fonctionne aussi bien sur Mac OS X que sur Windows et Linux.

avatar HAL-9000 | 

Python... le MIT n'est plus ce qu'il était...

avatar tamino | 

HAL-9000 non plus, d'ailleurs...

avatar damien51 | 

je suis d'accord, l'ibm 9000, ca date :)

avatar kritof | 

C'est vraiment très intuitif comme façon de faire. Je trouve cela excelent !, certainne tache sont difficile a scripter, avec ce système tout semble possible.

avatar mwolff | 

C'est quand même impressionnant de facilité

avatar funatik2k | 

Excellente idée, qui compléterait à merveille l'enregistreur d'actions dans Automator.

avatar BeePotato | 

Commande-majuscule-2 ?
Mais comment on va faire pour éjecter une disquette du second lecteur s’ils piquent ce raccourci ? ;-)

Je sais, je me sens vieux…

avatar DHG | 

Ça a l'air très fonctionnel !
Mais chez moi pomme majuscule 2 c'est plutôt pomme majuscule 4 !

avatar sekaijin | 

quelle retour en arrière.

Je me souvient que les tout premiers outils de "Macro" en environnement graphique fonctionnaient justement en désignant des zones graphiques et similé l'utilisateur.

L'arrivée des AppleEvents avait été salué comme ENFIN la fin de la galère pour scripter les applications graphiques.

la seul nouveauté est l'utilisation de la reconnaissance d'image pour déterminer la zone. ce n'est vraiment pas une grosse avancée.

Je préfèrerais qu'apple libère les AppleEvents franchement un "applescript" like sur tous les OS utilisant js ou pyton ou autre comme langage de script pour utiliser les AppleEvents et c'est royal

A+JYT

avatar lennoyl | 

Je n'ai pas encore essayé, mais ça ne peut pas être pire que l' "enregistreur d'actions" d'Automator qui est une belle m*** (la fonction, pas Automator)

avatar lennoyl | 

après essais, c'est un trop bugué pour moi pour l'instant (vivent les java.lang.OutOfMemoryError qui apparaissent sans raison).
Dommage car c'est plutôt prometteur.

avatar ErGo_404 | 

[quote]sekaijin [02/02/2010 13:33]

quelle retour en arrière.

Je me souvient que les tout premiers outils de "Macro" en environnement graphique fonctionnaient justement en désignant des zones graphiques et similé l'utilisateur.

L'arrivée des AppleEvents avait été salué comme ENFIN la fin de la galère pour scripter les applications graphiques.

la seul nouveauté est l'utilisation de la reconnaissance d'image pour déterminer la zone. ce n'est vraiment pas une grosse avancée.

Je préfèrerais qu'apple libère les AppleEvents franchement un "applescript" like sur tous les OS utilisant js ou pyton ou autre comme langage de script pour utiliser les AppleEvents et c'est royal

A+JYT[/quote]
Ben si justement c'est une grosse avancée. Avant on définissait un point précis de l'écran, maintenant on définit un bouton ou une zone graphique, qui sera reconnue. Ca permet de piloter potentiellement n'importe quoi, peut importe le type d'interface graphique, comment elle est codée, etc.
En gros ça enlève toutes les contraintes de l'ancien système.

CONNEXION UTILISATEUR