Aller au contenu

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.

Fenêtre de terminal
ht browser open <url> # open in current pane (creates one if needed)
ht browser open-split <url> # open as a new split
ht browser list # list browser surfaces

Toutes les autres commandes ciblent une surface de navigateur spécifique :

Fenêtre de terminal
ht browser <id> <command> [args]
# example:
ht browser browser:2 navigate https://example.org
ht 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 :

Fenêtre de terminal
ht browser navigate https://example.org # uses HT_SURFACE
CommandeRôle
navigate <url>Va à l’URL.
goto <url>Alias pour navigate.
backRetour dans l’historique.
forwardAvance dans l’historique.
reloadRecharge la page.
url / get-urlAffiche l’URL actuelle.
identifyId 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.

Fenêtre de terminal
ht browser browser:1 wait --selector "#dashboard" --timeout-ms 15000
ht browser browser:1 wait --text "Welcome" --timeout-ms 15000
ht browser browser:1 wait --load-state complete

Choisissez au plus une option parmi --selector, --text, --load-state. --timeout-ms vaut 30000 par défaut.

CommandeArgsRô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).
Fenêtre de terminal
ht browser browser:1 snapshot # accessibility tree
ht browser browser:1 get title
ht browser browser:1 get url
ht browser browser:1 get text "#welcome" # textContent of selector
ht 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"
Fenêtre de terminal
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.

Fenêtre de terminal
ht browser browser:1 console # tail console logs
ht browser browser:1 console --clear # clear the buffer
ht browser browser:1 errors # tail JS errors
ht browser browser:1 errors --clear
Fenêtre de terminal
ht browser browser:1 history # list visited URLs (deduped)
ht browser browser:1 history --search "github"
ht browser browser:1 history --clear
Fenêtre de terminal
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.

Fenêtre de terminal
ht browser help
ht browser --help # alias
ht browser -h # alias

Imprime 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.

Fenêtre de terminal
ht browser browser:1 devtools # toggle WebKit inspector
Fenêtre de terminal
ht browser browser:1 close

Ce sont des commandes de premier niveau (pas ht browser <sous-commande>) :

Fenêtre de terminal
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_*.

Chaque verbe ht browser <sous-commande> existe aussi en commande plate, pour que les anciens scripts continuent de fonctionner :

Fenêtre de terminal
ht browser-open [url] ht browser-navigate <url> ht browser-url
ht browser-split [url] ht browser-back ht browser-forward
ht browser-reload ht browser-close ht browser-eval <js>
ht browser-snapshot ht browser-find <query> ht browser-devtools
ht browser-history ht browser-clear-history

Préférez la forme ht browser … dans les nouveaux scripts : c’est elle qui reçoit les nouvelles sous-commandes.