# Browser Automation — Chromium CLI (agent-browser) > CLI headless Chromium para navegação, login, raspagem e screenshots. ## Fluxo Padrão ```bash agent-browser open https://exemplo.com/form agent-browser snapshot -i # Descobre elementos → @e1, @e2, @e3 agent-browser fill @e1 "user@exemplo.com" agent-browser fill @e2 "senha123" agent-browser click @e3 agent-browser wait --load networkidle agent-browser snapshot -i # Re-snapshot após mudança de DOM ``` ## Comandos Essenciais ```bash # Navegação agent-browser open agent-browser close # Snapshot (sempre primeiro) agent-browser snapshot -i # Elementos interativos + @refs agent-browser snapshot -i -C # + cursor-interactive elements # Interação com @refs agent-browser click @e1 agent-browser fill @e2 "text" # Clear + type agent-browser type @e2 "text" # Type sem limpar agent-browser select @e1 "option" agent-browser check @e1 agent-browser press Enter agent-browser scroll down 500 agent-browser hover @e1 # Extração agent-browser get text @e1 agent-browser get text body > page.txt agent-browser get html @e1 agent-browser get url agent-browser get title # Espera agent-browser wait @e1 agent-browser wait --load networkidle agent-browser wait --url "**/dashboard" # Captura agent-browser screenshot page.png agent-browser screenshot --full # Página inteira agent-browser pdf relatorio.pdf # Download agent-browser download @e1 ./file.pdf agent-browser wait --download ./output.zip ``` ## 🔐 Login + Persistência de Sessão ```bash # Login agent-browser open https://app.exemplo.com/login agent-browser fill @e1 "$USERNAME" && agent-browser fill @e2 "$PASSWORD" agent-browser click @e3 agent-browser wait --url "**/dashboard" agent-browser state save ~/auth.json # Salva cookies + sessão # Reutilizar agent-browser state load ~/auth.json agent-browser open https://app.exemplo.com/dashboard ``` ## 🔒 Segurança (ambiente) ```bash export AGENT_BROWSER_ALLOWED_DOMAINS="exemplo.com" export AGENT_BROWSER_MAX_OUTPUT=50000 export AGENT_BROWSER_CONTENT_BOUNDARIES=1 ``` ## ⚠️ Ref Lifecycle > Refs (`@e1`, `@e2`) são **invalidados** após qualquer mudança de DOM. > Sempre faça `snapshot -i` de novo após: > - Cliques que navegam > - Submissão de formulário > - Conteúdo dinâmico (dropdowns, modais) ## Sessões Paralelas ```bash agent-browser --session site1 open https://site-a.com agent-browser --session site2 open https://site-b.com agent-browser session list ```