Browser
ht browser contrôle les panneaux du navigateur intégré. Conçu pour les agents, les scripts CI et les workflows de régression visuelle.
Niveau supérieur
Section intitulée « Niveau supérieur »ht browser open <url> # open in current pane (creates one if needed)ht browser open-split <url> # open as a new splitht browser list # list browser surfacesToutes les autres commandes ciblent une surface de navigateur spécifique :
ht browser <id> <command> [args]# example:ht browser browser:2 navigate https://example.orght browser browser:2 click "button[type='submit']"À l’intérieur d’un panneau de navigateur, HT_SURFACE est défini automatiquement, vous pouvez donc omettre l’id :
ht browser navigate https://example.org # uses HT_SURFACENavigation
Section intitulée « Navigation »| Commande | Rôle |
|---|---|
navigate <url> | Va à l’URL. |
goto <url> | Alias pour navigate. |
back | Retour dans l’historique. |
forward | Avance dans l’historique. |
reload | Recharge la page. |
url / get-url | Affiche l’URL actuelle. |
identify | Id de la surface, titre, URL. |
navigate / goto acceptent les URLs http:// et https:// (y compris localhost / les serveurs de dev en LAN), about: (par ex. about:blank), data: et chrome-extension://. Les URLs file:// sont volontairement rejetées pour des raisons de sécurité — elles permettraient à un panneau de navigateur de lire des fichiers locaux arbitraires via le socket.
ht browser browser:1 wait --selector "#dashboard" --timeout-ms 15000ht browser browser:1 wait --text "Welcome" --timeout-ms 15000ht browser browser:1 wait --load-state completeChoisissez au plus une option parmi --selector, --text, --load-state. --timeout-ms vaut 30000 par défaut.
Interaction
Section intitulée « Interaction »| Commande | Args | Rôle |
|---|---|---|
click <selector> | Clic. | |
dblclick <selector> | Double clic. | |
hover <selector> | Survol. | |
focus <selector> | Focus. | |
check <selector> / uncheck <selector> | Bascule une case à cocher. | |
scroll-into-view <selector> | Fait défiler l’élément dans le viewport. | |
type <selector> <text> | Saisit du texte dans le champ focalisé. | |
fill <selector> <text> | Définit la valeur. | |
press <key> | Envoie une touche (par ex. Enter, Escape, Control+a). | |
keydown <key> / keyup <key> | Événements clavier de plus bas niveau. | |
select <selector> <value> | Sélectionne une <option>. | |
scroll <x> <y> | Fait défiler la page. | |
highlight <selector> | Surlignage visuel (debug). |
Inspection
Section intitulée « Inspection »ht browser browser:1 snapshot # accessibility treeht browser browser:1 get titleht browser browser:1 get urlht browser browser:1 get text "#welcome" # textContent of selectorht browser browser:1 get value "#email"ht browser browser:1 is visible "#dashboard"ht browser browser:1 is enabled "button[type='submit']"ht browser browser:1 is checked "#agree"Injection
Section intitulée « Injection »ht browser browser:1 addscript "console.log('hello')"ht browser browser:1 addstyle "body { background: red }"ht browser browser:1 eval "document.title"ht browser browser:1 eval "await fetch('/api/health').then(r => r.json())"eval renvoie le résultat sérialisé en JSON. Les expressions asynchrones sont attendues automatiquement.
addscript, addstyle et eval rejettent les charges utiles supérieures à 256 KiB — cela ne concerne que les scripts ou feuilles de style anormalement volumineux.
Console / erreurs
Section intitulée « Console / erreurs »ht browser browser:1 console # tail console logsht browser browser:1 console --clear # clear the bufferht browser browser:1 errors # tail JS errorsht browser browser:1 errors --clearHistorique
Section intitulée « Historique »ht browser browser:1 history # list visited URLs (deduped)ht browser browser:1 history --search "github"ht browser browser:1 history --clearRecherche dans la page
Section intitulée « Recherche dans la page »ht browser browser:1 find-in-page "search query"La moitié « annuler » est exposée uniquement en RPC (browser.stop_find) — le bouton d’annulation vit dans l’UI du panneau navigateur, pas comme verbe ht. Voir Méthodes RPC sans verbe CLI.
ht browser helpht browser --help # aliasht browser -h # aliasImprime le même bloc browser-section que le ht --help global, restreint aux sous-commandes browser. Le chemin d’erreur par défaut (Unknown browser subcommand: …) renvoie vers cette commande ; elle pointe désormais vers une vraie commande.
DevTools
Section intitulée « DevTools »ht browser browser:1 devtools # toggle WebKit inspectorht browser browser:1 closePour aller plus loin
Section intitulée « Pour aller plus loin »Commandes cookies
Section intitulée « Commandes cookies »Ce sont des commandes de premier niveau (pas ht browser <sous-commande>) :
ht browser-cookie-list [domaine]ht browser-cookie-get <url>ht browser-cookie-set <nom> <valeur> --domain <d> [--path /] [--secure true]ht browser-cookie-delete <domaine> <nom>ht browser-cookie-clear [domaine]ht browser-cookie-import <fichier> [--format json|netscape]ht browser-cookie-export [--format json|netscape]ht browser-cookie-capture [--surface S]Un pot à cookies contient des identifiants — traitez un export comme un fichier
de mots de passe. Voir l’API browser.cookie_*.
Alias historiques
Section intitulée « Alias historiques »Chaque verbe ht browser <sous-commande> existe aussi en commande plate, pour
que les anciens scripts continuent de fonctionner :
ht browser-open [url] ht browser-navigate <url> ht browser-urlht browser-split [url] ht browser-back ht browser-forwardht browser-reload ht browser-close ht browser-eval <js>ht browser-snapshot ht browser-find <query> ht browser-devtoolsht browser-history ht browser-clear-historyPréférez la forme ht browser … dans les nouveaux scripts : c’est elle qui
reçoit les nouvelles sous-commandes.