Avec agent-browser, ouvrez la page, prenez un snapshot interactif, agissez à partir d’une référence puis vérifiez le résultat. Si la page change, prenez un nouveau snapshot avant la prochaine action. Le numéro seul ne suffit pas à identifier le contrôle.
Un utilisateur demandait comment les refs tiennent quand le DOM change souvent. Un autre recommandait de vérifier qu’un échec est visible et reproductible. L’exercice traite les deux questions. r/ClaudeAI · r/AI_Agents
Relier la CLI et la session
La CLI envoie ses commandes à un processus de fond qui conserve un navigateur en cours. Utilisez le même nom --session à chaque commande du travail. Le snapshot décrit l’onglet actif, tandis que la session identifie l’état de navigateur partagé.
Sessions · Comparaison Tabbit et agent-browser · Agent navigateur · Automatisation web
Ouvrir la page d’exercice
Utilisez la CLI installée et un navigateur configuré. Consultez l’installation officielle pour votre plateforme. Servez le fichier sur la boucle locale ou ouvrez la page d’exercice hébergée. Lisez le titre et les libellés. La sortie indique ref=e2 et la commande utilise @e2.
Installation officielle · Snapshots · Ouvrir l’exercice
Exécuter l’exercice
Le fichier HTML ne demande aucun compte. Enregistrez fixture.html dans un dossier vide et lancez le serveur dans un autre terminal. Vérifiez le titre ou remplacez l’URL locale par celle de la page hébergée.
python3 -m http.server 4173 --bind 127.0.0.1agent-browser --session refs-demo-a open http://127.0.0.1:4173/fixture.html
agent-browser --session refs-demo-a snapshot -i
Lire ce qui sert à décider
Commencez par snapshot -i pour choisir un contrôle. Si vous cherchez une explication ou une erreur, prenez un snapshot complet ou lisez le statut. Un filtre peut omettre du texte qui reste sur la page. Avec des boutons répétés, vérifiez le conteneur avant de limiter la capture.
Reproduire une ref périmée
Cliquez sur le bouton de remplacement. L’URL reste identique et les boutons d’origine disparaissent. Avec la version 0.41.2, @e3 renvoie le code de sortie 1 et indique que le bouton d’origine est introuvable. Une lecture séparée affiche toujours Panel B ready.
agent-browser --session refs-demo-a click @e2
agent-browser --session refs-demo-a get text '#status'
agent-browser --session refs-demo-a click @e3Panel B ready
✗ Could not locate element with role=button name=Use original actionReprendre un snapshot et vérifier le résultat
Le nouveau snapshot attribue @e5 à Use revised action. Après le clic, nous lisons Panel B selected. En 0.26.0, le nouveau snapshot réutilisait @e3 pour le bouton de remplacement. Vérifiez le rôle et le nom, car les numéros peuvent varier.
agent-browser --session refs-demo-a snapshot -i
agent-browser --session refs-demo-a click @e5
agent-browser --session refs-demo-a get text '#status'| Contrôle ou état | Résultat observé |
|---|---|
| Bouton initial | Use original action · @e3 |
| Nouveau bouton | Use revised action · @e5 |
#status | Panel B selected |

Distinguer les preuves
Le premier retour confirme le changement de panneau. L’erreur indique que le libellé d’origine est introuvable. La lecture finale confirme l’effet du nouveau clic. Conservez le snapshot avec l’état observé.
Quelles références peuvent être conservées
La documentation indique qu’un nœud encore présent peut conserver sa ref. Après remplacement, l’outil peut chercher une correspondance unique par rôle et nom. L’exercice supprime le nom d’origine, donc la recherche échoue. Si plusieurs boutons ont le même nom, réobservez avec le contexte du conteneur.
Séparer les tâches par session
Choisissez des noms tels que refs-demo-a et refs-demo-b. La seconde session a ouvert la même URL dans un profil temporaire distinct. Elle affichait Panel A ready tandis que la première affichait Panel B selected. Le profil compte pour l’état persistant. Deux clients attachés au même navigateur peuvent partager l’identité.
agent-browser --session refs-demo-b open http://127.0.0.1:4173/fixture.html
agent-browser --session refs-demo-b get text '#status'
agent-browser --session refs-demo-a get text '#status'Agent d’automatisation · Sécurité des agents · Connecter un navigateur existant
Navigateur de l’expérience
Les deux versions ont utilisé le véritable exécutable Tabbit Browser Dev sur macOS avec des profils temporaires. agent-browser pilote l’exercice, et Tabbit CLI valide séparément la page de l’article. Suivez l’installation officielle de votre plateforme.
Choisir le bon isolement
L’onglet sélectionne une page, la session conserve l’état entre commandes et le profil détermine l’emplacement des données lors d’un lancement local. Gardez les réglages de la session et utilisez un autre profil temporaire au prochain test. Modifier un réglage de lancement peut redémarrer le navigateur.
Fermer sa session et diagnostiquer
Vérifiez le résultat, puis fermez chaque session par son nom. Utilisez session list pour repérer les sessions actives. En cas d’échec après une capture neuve, vérifiez l’URL, l’onglet, le rôle, le libellé et la visibilité. Attendez l’état voulu avant de réessayer.
| Échec ou observation | Étape suivante |
|---|---|
| Ancienne ref après remplacement | Reprendre un snapshot et chercher le nouveau bouton |
| Numéro réutilisé dans le snapshot suivant | Vérifier le nouveau rôle et libellé |
| La nouvelle ref échoue | Vérifier l’onglet et l’état visible |
agent-browser --session refs-demo-a close
agent-browser --session refs-demo-b close
agent-browser session listListe de première tâche · Déboguer le navigateur
Questions fréquentes
Que renvoie snapshot -i ?
Une vue interactive avec les rôles, les noms et les refs.
Pourquoi une ancienne ref échoue-t-elle ?
Le contrôle peut avoir disparu ou un nouveau snapshot peut modifier la référence.
Puis-je copier @e5 depuis le guide ?
Prenez la référence du contrôle voulu dans votre propre snapshot.
Une URL identique garantit-elle les mêmes refs ?
Une application peut remplacer des contrôles sans navigation.
Que vérifier après un clic ?
Le résultat réel, par exemple le statut, l’URL ou la valeur enregistrée.
Comment fermer la session d’exercice ?
Exécutez close avec son nom, puis utilisez session list si nécessaire.