Resumo: Usepage.locator(selector).fill(value)para scripts de envio de formulários do Puppeteer rápidos e determinísticos epage.type()quando a página deteta teclas reais (preenchimento automático, anti-bot, validação em tempo real). Envie clicando no botão, premindo Enter ou chamandoform.requestSubmit()e aguarde sempre por um sinal concreto de sucesso em vez de um tempo limite fixo.
Os formulários são a forma como a maioria das páginas úteis realmente funciona. Inícios de sessão, barras de pesquisa, fluxos de checkout, carregadores de ficheiros, assistentes de integração em várias etapas: se automatizar a web para testes ou scraping, mais cedo ou mais tarde terá de lidar com um formulário. Um fluxo de trabalho de envio de formulário do Puppeteer parece enganosamente simples à primeira vista, mas depois choca-se com as realidades de um site moderno: re-renderização de aplicações de página única, honeypots ocultos, campos de entrada apenas com rótulo, editores presos em iframes e JavaScript que discretamente descarta a sua entrada porque nunca viu um evento keydown .
Um formulário HTML é um <form> elemento que envolve <input>, <select>, <textarea>e controlos semelhantes, com um action atributo e um gatilho de envio que envia os dados recolhidos para processamento. Essa é a parte fácil. A parte difícil é fazer com que um script do Chrome sem interface gráfica se comporte de forma suficientemente semelhante a uma pessoa para que a página aceite efetivamente o envio e devolva uma resposta utilizável.
Este guia é a folha de referência que eu gostaria de ter tido quando comecei a enviar scripts do Puppeteer para produção. Vamos escolher a API certa para a tipagem, definir seletores estáveis, percorrer três estratégias de envio e quando cada uma falha, abordar todos os tipos de entrada comuns (incluindo seletores de ficheiros personalizados e editores de texto rico), aguardar o sinal de sucesso correto, validar o resultado e terminar com uma lista de verificação de depuração para a temida falha silenciosa.




