Journal Sikuli, ou comment programmer avec des images écrans.

Posté par  (site web personnel) .
18
27
jan.
2010
Le projet Sikuli

http://groups.csail.mit.edu/uid/sikuli/

permet de programmer à partir d'images écrans

je cite
Sikuli is a visual technology to search and automate graphical user interfaces (GUI) using images (screenshots)

regardez les 9 exemples
http://sikuli.org/documentation.shtml

J'aime bien celui-là
http://sikuli.org/documentation.shtml#examples/find-boston.s(...)

la vidéo sur Youtube
http://www.youtube.com/v/FxDOlhysFcM&fs=1&rel=0&hd=1&iframe=(...)
qui explique comment automatiser une action comme indiquer une adresse IP

Sikuli permet aussi de faire du Unit testing pour GUI
http://sikuli.org/documentation.shtml#/trac/wiki/UnitTesting
et
http://sikuli.org/examples/TestJEdit.sikuli/TestJEdit.html

cet outil étant en Jython, il implique juste d'avoir Java installé.
  • # Sympa

    Posté par  . Évalué à 7.

    Ca peut faire un langage de script sympa, surtout si il s'intègre à un outil tel automator, ça pourrait être le langage de script de madame michu
    Mais AMHA c'est surtout pour les tests d'ihm qu'il doit être pratique, car en dehors des applis web on ne trouve pas grand chose
    • [^] # Re: Sympa

      Posté par  . Évalué à 2.

      Gasp! si madame michu se met a faire du script, on a pas fini de lire ses postes d'appel à l'aide!

      C'est rigolo, mais effectivement, a part pour des appli web, je doute de l'utilité d'un tel outil. Enfin, ce n'est que mon avis personnel, d'autre y trouverons surement leur compte...

      Le truc, c'est que ce machin, ça pourrait aussi être utilisé pour faire des choses pas très sympa, du genre escroquerie du système de publicité d'un site internet... Je doit avoir l'esprit mal tourné car je vois plein d'applications dans le genre (saturation de site, trucage de sondage, spam de forum, attaque au dictionnaire pour les nulles) que certains scripts kiddies s'empresseront de tester... En plus, est-ce qu'il ne serait pas possible avec un tel outils de créer un système de contournement des captchas? Je n'en connais pas les mécanismes exacte, alors c'est peut être une bêtise...
      • [^] # Re: Sympa

        Posté par  . Évalué à 2.

        pour toutes ces attaques, je pense qu'il y a plus simple.
        Pour la captchas, l'outil ne me semble pas capable de faire de l'ocr...
        et pour madame michu... bon jai ptet été un peu optimiste ;)
        • [^] # Re: Sympa

          Posté par  . Évalué à 3.

          Tu as probablement raison, c'était juste une reflexion qui m'est venu comme ça...
          Heu... l'ocr c'est quoi? La reconnaissance d'image?
          • [^] # Re: Sympa

            Posté par  . Évalué à 2.

            un ocr est un outil faisant de la reconnaissance de texte
            Généralement le captcha, il faut bien reconnaitre le texte qui est dedans pour pouvoir l'utiliser.
            Néanmoins il y a certains cas où il faut clicker sur l'image la plus semblable au captcha, dans ce cas oui, l'outil permet certainement de contourner ce système
          • [^] # Re: Sympa

            Posté par  . Évalué à 3.

            Le principe existe depuis longtemps (xautomation sur linux et autohotkey sur Windows permet de faire cela mais ces deux programmes restent du scripting pur & dur).

            Ici, l'innovation est l'interface graphique surtout pour la gestion des screenshots permettant de savoir où cliquer.

            Personnellement, je me pose plus de question concernant la création de bot sur les jeux. Ayant déjà fais ce genre de bot, je dois dire que si ce logiciel supporte OpenGL et directX, il risque de grandement faciliter la création de bot.
  • # Pixel

    Posté par  . Évalué à 5.

    Si je suis bien, il suffit que la couleur d'un pixel soit différente - thème de couleurs différent, police de taille différente, logiciel qui a changé et dont l'alignement entre les champs change les tailles, etc. - pour que cet outil soit perdu ?
    • [^] # Re: Pixel

      Posté par  . Évalué à 5.

      Selon ce qui est dit dans la vidéo, il y a une tolérance.
      Dailleurs il y a également une fonction Pattern (vu dans l'éxemple des tests unitaires) qui propose de fournir un "coéfficient de ressemblance" (terme complètement inventé).

      Ensuite faut voir dans la pratique
  • # et d'autres

    Posté par  . Évalué à 4.

    Super ! Enfin un outil gratos comme ça.

    Il y avait AutoIT (pour windows), limité malheureusement pour cette partie graphique magique.
    Il y avait iScripter (www.itexis.com), mais payant. Ca fait pareil, ça marche globalement bien

    Et là, pareil en gratuit ET sur 3 OS !!!!

    merci
    • [^] # Re: et d'autres

      Posté par  . Évalué à 4.

      Fervent utilisateur d'AutoIT, là je commence à me poser la question d'utiliser Sikuli aprés avoir vu la démo.

      Parce qu'AutoIT, je le couple en général à un autre langage de programmation, et finalement je n'utilise que ses fonctions "clic fenêtre".
      • [^] # Re: et d'autres

        Posté par  . Évalué à 3.

        je le couple en général à un autre langage de programmation
        Si j'ai bien compris, c'est possible aussi dans sikuli puisqu'on peut utiliser sans restriction python dans les scripts.
    • [^] # Re: et d'autres

      Posté par  . Évalué à 3.

      Y'avais aussi automouse sous Windows et un générateur de Macros d'interface freeware très puissant que j'utilisais en 1999 mais je ne me rappelle plus du nom.
      • [^] # Re: et d'autres

        Posté par  . Évalué à 7.

        Je pense que ca mérite une dépêche non ?

        Je viens de tester ça.

        Prometteur.

        Par contre, pour remplacer AutoIT actuellement l'API est un peu courte pour être utilisée seule sans avoir recours à autre chose:
        - problème du motif similaire
        - problème de gestion des fenêtres multiples, pour mise en premier plan
        - pas de fonctions pour bloquer souris/clavier pendant l'exécution du script

        Mais la technique est intéressante, multiplateforme, syntaxe python, et lorsqu'elle se sera étoffée elle sera à mon avis incontournable.

Suivre le flux des commentaires

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