Votre premier script
Ce guide suit le workflow de base d’OculiX : voir → reconnaître → agir. À la fin, vous aurez un script qui repère un bouton à l’écran grâce à son image, et clique dessus.
1. Capturer l’élément à cliquer
Section intitulée « 1. Capturer l’élément à cliquer »- Lancez l’IDE OculiX.
- Cliquez sur New Script (ou File → New). L’IDE crée un bundle
.sikuli— un dossier qui contient le script et ses images. - Faites apparaître votre cible à l’écran. Pour cet exemple, ouvrez votre explorateur de fichiers ou un éditeur de texte, et choisissez un bouton visible — typiquement le bouton Save.
- Dans la barre d’outils, cliquez sur l’icône Take Screenshot (appareil photo). L’écran se fige, le curseur devient un viseur.
- Tracez un rectangle serré autour de la cible, puis relâchez le bouton de la souris.
OculiX insère l’image capturée dans le script sous forme de miniature cliquable :
click("save_button.png")L’image est enregistrée dans le dossier .sikuli. Vous pouvez la renommer, la remplacer ou la réutiliser dans d’autres scripts.
2. Exécuter le script
Section intitulée « 2. Exécuter le script »Appuyez sur ▶ Run (ou Cmd/Ctrl + R). OculiX enchaîne trois opérations :
- Il prend une nouvelle capture de l’écran.
- Il y cherche
save_button.png. - Il déplace la souris sur le résultat et clique.
Si rien n’est trouvé, FindFailed apparaît dans la console — le plus souvent parce que la cible a bougé, a été masquée, ou parce que le seuil de similarité est trop strict.
3. Un exemple concret
Section intitulée « 3. Un exemple concret »Voici un script complet, qui tient dans une seule fenêtre et exporte un rapport quotidien :
from sikuli import *
# Ouvre l'application via son icône dans la barre des tâches (image capturée à l'avance)click("app_icon.png")wait("app_main_window.png", 10) # attend la fenêtre principale, 10 s max
# Parcourt le menu d'exportclick("file_menu.png")click("export_to_csv.png")wait("save_dialog.png", 5)
# Saisit le nom du fichier dans le champ actiftype("filename_field.png", "rapport_" + getDate() + ".csv")click("save_button.png")
# Attend la disparition du toast de confirmation avant de fermerwaitVanish("loading_spinner.png", 30)popup("Terminé !")Trois choses à retenir :
- Aucun sélecteur. À aucun moment OculiX ne demande la classe CSS ou l’identifiant d’accessibilité du bouton.
wait()etwaitVanish()synchronisent le script avec l’application : attendre qu’un élément apparaisse, ou disparaisse, avant de continuer.- Du Python standard. Le
+ getDate()est du Python pur — tout ce que Jython permet (syntaxe Python 2.7, accès complet à la JVM) est possible ici.
4. Ajuster la similarité
Section intitulée « 4. Ajuster la similarité »Par défaut OculiX exige 70 % de similarité entre l’image capturée et ce qu’il voit à l’écran. Avec de l’antialiasing, de la transparence ou un changement de thème, ce seuil peut être trop strict. Deux façons de l’assouplir :
# Pour un appel précisclick(Pattern("save_button.png").similar(0.65))# Pour tout le scriptSettings.MinSimilarity = 0.655. Sauvegarder et rejouer
Section intitulée « 5. Sauvegarder et rejouer »Cliquez sur Save. Votre bundle (mon-export.sikuli) est un dossier ordinaire :
-
Versionnable avec Git,
-
Partageable avec un collègue (en zip),
-
Planifiable avec cron ou le Planificateur de tâches Windows :
Fenêtre de terminal java -jar oculixide.jar -l mon-export.sikuli -e
Pour aller plus loin
Section intitulée « Pour aller plus loin »- La reconnaissance visuelle en profondeur —
Region,Pattern,Match, similarité, ancres - Lire du texte à l’écran avec l’OCR — repérer un bouton par son libellé plutôt que par son image
- Visite de l’IDE — Workspace, Modern Recorder, Welcome tab