Galerie de scénarios
Les quatre scénarios livrés avec Diwall : ce que fait chacun, la commande exacte, et la sortie qu'il a réellement produite.
Un scénario est un fichier JSON : une liste d’actions, dans l’ordre. C’est l’unité de travail de Diwall — vous en écrirez, vous en réutiliserez, vous en versionnerez.
Ces quatre-là sont livrés avec l’outil. Ils fonctionnent sur une installation neuve, sans configuration préalable — sauf le dernier, qui demande un répertoire chiffré.
1 · Lire sans capturer
Le plus léger. Il attend la page, puis lit son titre — aucune capture, aucune analyse d’image.
{"url": "https://example.com",
"actions": [
{"type": "attendre_selecteur_present", "selecteur": "body"},
{"type": "evaluer", "script": "document.title"}]}
diwall-rpa --scenario /opt/diwall/scenarios/exemples/sondage_fast.json --guide-version 1.3
{"succes": true, "http_status": 200,
"evaluations": [{"script": "document.title", "valeur": "Example Domain"}],
"respect": {"actions_executees": 2, "duree_totale_ms": 1174}}
Deux actions, un peu plus d’une seconde. C’est la forme à viser quand vous avez seulement besoin de savoir ce que dit une page.
2 · Voir, puis cliquer par numéro
La même page, mais avec --som : chaque élément interactif est numéroté, et
le clic désigne un numéro plutôt qu’un sélecteur.
{"actions": [
{"type": "attendre_selecteur_present", "selecteur": "body"},
{"type": "cliquer_som", "id": 1}]}
diwall-rpa --scenario /opt/diwall/scenarios/exemples/navigation_som.json --som --guide-version 1.3
{"succes": true, "http_status": 200,
"respect": {"actions_executees": 2, "duree_totale_ms": 1160}}
3 · Diagnostiquer une page qui résiste
Même squelette, autre usage : pointez-le sur une interface locale qui se
comporte mal et lisez erreurs_js et erreurs_console dans la réponse. Une
page blanche masquant une erreur HTTP 500 ressemble exactement à une session
expirée — c’est la console qui les distingue.
diwall-rpa --scenario /opt/diwall/scenarios/exemples/depannage_local.json --guide-version 1.3
{"succes": true, "http_status": 200, "erreurs_js": [], "erreurs_console": [],
"evaluations": [{"script": "document.title", "valeur": "Example Domain"}]}
Listes vides ici, parce qu’example.com n’a rien à signaler. Remplacez l’URL
par la vôtre et elles se remplissent.
4 · S'authentifier depuis le répertoire chiffré
Le plus démonstratif, et celui qui ferme la page au lieu de l’ouvrir : il demande un répertoire chiffré monté et configuré.
{"auth_indicator": ".user-menu",
"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"}]}
Aucune sortie n’est montrée ici, et c’est délibéré : sans ce répertoire, ce scénario ne s’exécute pas, et afficher l’erreur qu’il lève ne prouverait rien de la fonctionnalité. Configurez-en un d’abord, puis lancez-le sur une cible à vous.
Deux détails portent tout le modèle de sécurité. "valeur": "depuis_secrets"
signifie que le mot de passe est résolu dans le processus du navigateur,
jamais dans votre shell. Et la première action est une assertion, pas une
étape : si la page n’est pas celle attendue, le scénario s’arrête avant de
taper quoi que ce soit où que ce soit.
La galerie grandit par l'usage réel
Quatre scénarios, c’est un point de départ volontairement modeste.
journal.py --exporter-skill transforme une exécution réelle réussie en
scénario réutilisable — la galerie grossit au rythme des usages réels, jamais
par des exemples fabriqués pour remplir la page.