Galerie de scénarios
Quatre scénarios sont fournis avec Dinoer : ce que fait chacun, la commande exacte utilisée et le résultat qu'il a réellement produit le 14 août 2026.
Un scénario est un fichier JSON : une liste d’actions, dans l’ordre. C’est l’unité de travail de Dinoer pour le cœur du navigateur, et vous en écrirez certains, en réutiliserez d’autres, et vous les placerez sous contrôle de version.
Ces quatre versions sont fournies avec l’outil. Elles fonctionnent sur une nouvelle installation, sans aucune configuration préalable, à l’exception de la dernière, qui nécessite un répertoire chiffré.
1 · Lire sans modifier
Le plus simple : attendez que la page se charge, puis lisez son titre. Pas de JavaScript au-delà d’un seul evaluer, rien ne change sur la page cible.
{"url": "https://example.com",
"actions": [
{"type": "attendre_selecteur_present", "selecteur": "body"},
{"type": "evaluer", "script": "document.title"}]}
/opt/dinoer/venv/bin/python3 /opt/dinoer/rpa.py \
--scenario scenarios/exemples/sondage_fast.json --guide-version 1.6
{"succes": true, "http_status": 200,
"evaluations": [{"script": "document.title", "valeur": "Example Domain"}],
"respect": {"actions_executees": 2, "duree_totale_ms": 2762}}
Deux actions, en moins de trois secondes. C’est la forme à adopter lorsque vous n’avez besoin que de savoir ce qu’une page dit.
2 · Reconnaissance avant la mutation
scenarios/diagnostic_dom.json permet de visualiser une page sans la modifier : chaque
bouton et champ de saisie, que ce soit avec un framework frontend connu ou non,
que des « shadow roots » existent ou non. La règle du guide lui-même — cartographier la page en une seule passe avant d’écrire un scénario qui la modifie — n’est pas ici un conseil, mais bien le contenu de ce fichier.
/opt/dinoer/venv/bin/python3 /opt/dinoer/rpa.py \
--scenario scenarios/diagnostic_dom.json --guide-version 1.6
{"succes": true, "http_status": 200,
"evaluations": [
{"script": "…querySelectorAll('button')…", "valeur": "[]"},
{"script": "…React/Vue/Angular…",
"valeur": "{\"React\":false,\"Vue\":false,\"Angular\":false}"}],
"respect": {"actions_executees": 6, "duree_totale_ms": 5933}}
Des listes vides ici, parce qu’example.com n’a ni bouton ni champ à signaler. Pointez-le vers une vraie cible et elles se remplissent — avec les sélecteurs et attributs exacts à partir desquels écrire le prochain scénario.
3 · Diagnostiquer une page qui ne s’affiche pas correctement
Même squelette que le scénario 1, mais un objectif différent : pointez-le vers une interface locale qui se comporte mal et lisez erreurs_js/erreurs_console dans la réponse — des champs réels, présents à chaque exécution, vides quand il n’y a rien à signaler. Une page blanche cachant une erreur HTTP 500 silencieuse ressemble exactement à une session expirée ; la console est ce qui permet de les distinguer.
/opt/dinoer/venv/bin/python3 /opt/dinoer/rpa.py \
--scenario scenarios/exemples/depannage_local.json --guide-version 1.6
Remplacez l’URL par celle de la cible en cours de développement ; face à une page qui ne pose aucun problème, erreurs_js/erreurs_console reviennent vides, comme dans les deux exécutions ci-dessus.
4 · Authentification à partir du répertoire chiffré
La plus démonstrative, et celle qui ferme la galerie plutôt que de l’ouvrir : elle nécessite un répertoire chiffré configuré et monté, donc aucun résultat n’est affiché ici. Afficher l’erreur qu’elle génère sans cela ne prouverait rien sur cette fonctionnalité.
{"auth_indicator": ".user-menu",
"url": "https://example.com/login",
"actions": [
{"type": "evaluer", "script": "document.title", "contient": "Example"},
{"type": "remplir", "selecteur": "input[name=\"username\"]",
"valeur": "depuis_secrets", "secret_cle": "username"},
{"type": "remplir", "selecteur": "input[name=\"password\"]",
"valeur": "depuis_secrets", "secret_cle": "password"},
{"type": "cliquer", "selecteur": "button[type=\"submit\"]"},
{"type": "attendre_selecteur_present", "selecteur": ".user-menu"}]}
Deux détails constituent tout le modèle de sécurité. "valeur": "depuis_secrets"
Cela signifie que le mot de passe est résolu dans le processus du navigateur, et jamais dans votre
terminal. Et la première action est une assertion, et non une étape : si la page n’est pas
celle attendue, le scénario s’arrête avant même de taper quoi que ce soit.
La galerie se développe grâce à une utilisation réelle
Quatre scénarios constituent un point de départ intentionnellement limité. Il évolue au rythme de l’utilisation réelle — rédigez les vôtres à partir d’une page réelle → — et non avec des exemples inventés pour remplir cette page.