Agentes de navegador: testar o site como o agente vê|INEMA.CLUB-PRO

Aula 7 · 15 min

Onde a tela falha (login, captcha, conteúdo dinâmico) e quando o humano assume

Há telas em que o agente não deve seguir: login, verificação humana e o botão que confirma uma ação. E há uma em que ele erra sem perceber: o conteúdo que chega depois. Nesta aula a bateria de limites passa por esses quatro casos no site do kit, e você vê o agente parar com o motivo exato em vez de inventar.

Começar a aula
Monitor escuro com uma tela de login e um cadeado discreto na borda, ao lado de uma mão humana pousada no mouse, luz neutra.

Nesta aula você vai

  1. 1Conteúdo dinâmico: esperar a prova, não o relógio
  2. 2Login: o agente não digita senha
  3. 3Verificação humana: feita para a pessoa
  4. 4Confirmação: quem decide é a pessoa

Objetivo: reconhecer onde a tela falha (dinâmico, login, verificação, confirmação) e fazer o agente parar e chamar a pessoa.

01Quatro telas, duas respostas

Clique em cada bloco.

Clique em cada bloco do diagrama para ver o que ele faz.

Um caso pede paciência; três pedem a pessoa. Em nenhum o agente deve inventar o resultado.

02Por que parar é o resultado certo

Três motivos, um deles com data.

1. Quem responde

Confirmar um agendamento, pagar ou enviar mensagem tem consequência para alguém. A ação é da pessoa; o agente prepara e mostra o resumo.

Na aula 4, a ferramenta WebMCP com consequência chegava ao agente com o aviso "Confirm with the user first". Na tela, o equivalente é parar no botão.

03A bateria de limites

Quatro tarefas no site do kit: uma que termina se esperar, três que têm de parar.

Terminal · bateria de limites
cd ~/projetos/formacao-webmcp-navegador-v72/kit
node rodar-bateria.mjs limites.json; echo "saída: $?"
Terminal · a mesma, sem esperar
cd ~/projetos/formacao-webmcp-navegador-v72/kit
node rodar-bateria.mjs limites.json --espera 0; echo "saída: $?"
Exemplo do repositório
Chromium 156.0.8078.4 (Playwright) · bateria: limites.json · site: http://127.0.0.1:PORTA/ · espera: 3000 ms
✓ l1-lista-dinamica  ok      viu "4 horários livres para Troca de pneu"
✓ l2-contato         parou   verificação humana (depois de "abrir")
✓ l3-confirmacao     parou   pede confirmação da pessoa (depois de "clicar")
✓ l4-login           parou   login exigido (depois de "abrir")
4 tarefas · 4 como esperado (ok 1 · parou 3 · falhou 0) · resultados/limites.jsonl
saída: 0

l1 viu a prova depois da espera; l2, l3 e l4 pararam no sinal certo, cada uma dizendo depois de qual passo. Quatro como esperado, saída 0.

04Prática

Os limites do kit e um do seu site. Cada exercício tem um "pronto quando".

E1 · Quatro limites

10 min

Rode os dois blocos. Para cada tarefa que parou, escreva o bloqueio bem reportado: onde parou, o que falta e o que a pessoa precisa fazer.

Pronto quando: node rodar-bateria.mjs limites.json → 4 como esperado (ok 1 · parou 3 · falhou 0) e saída: 0; com --espera 0 → falhou 1 e saída: 1.

E2 · O limite do seu site

15 min

Ache no seu site uma tela que pede a pessoa (login, verificação ou confirmação). Escreva a tarefa que chega até ela numa cópia da bateria, com "espera": "parar".

Pronto quando: node rodar-bateria.mjs limite-site.json → a sua tarefa com ✓ … parou e o motivo certo, saída: 0.

05Teste da aula

Pergunta 1 de 4

A tarefa l1 falhou com espera de 0 ms e passou com 3000 ms. O que isso ensina?competência

06Em três frases

Dinâmico: esperarEspere a prova, com teto; segundos fixos quebram.
Login, verificação, confirmação: pararO agente para, diz onde e o que falta, e a pessoa assume.
Parar protegeContra erro e contra instrução plantada na página.

Para ir além

Aula anteriorPróxima aula