Puppeteer é uma biblioteca Node que fornece uma API de alto nível para controlar o Chrome ou Chromium sobre o protocolo DevTools. Por padrão, o Puppeteer é executado headless.
A maioria das coisas que você pode fazer manualmente no seu navegador, pode ser realizada com Puppeteer.
O Puppeteer recentemente lançou uma atualização com significativas mudanças. A mudança mais impactante é:
O Puppeteer não utiliza mais a biblioteca EventEmitter no Nodejs:
Como o trabalho é tornar o Puppeteer uma ferramenta que seja independente do ambiente de desenvolvimento, foi removida a biblioteca EventEmitter no Nodejs, em favor de um emissor de eventos que não esteja vinculado ao Node. Por baixo dos panos, é utilizado o Mitt, com funcionalidades adicionais para corresponder aos métodos gerais que o EventEmitter do Nodejs fornece. Então, vários métodos foram removidos do Puppeteer, métodos esses que estendiam o EventEmitter:
- eventNames();
- getMaxListeners();
- listeners(eventName);
- prependListener;
- prependOnceListener;
- setMaxListeners(n);
- rawListeners(eventName).
E os métodos estáticos na classe EventEmitter também não são mais suportados, como por exemplo:
- listenerCount(emitter, eventName);
- defaultMaxListeners;
- errorMonitor;
O EventEmitter do Nodejs emite um evento newListener quando um ouvinte for adicionado e um removeListener quando um ouvinto foi removido. Estes eventos não são mais suportados pelo Puppeteer e não serão emitidos.
Novos recursos e melhorias:
- Os logs de depuração de envio e recebimento agora são divididos em canais separados. Isso torna os logs muito mais claros e permite uma melhor visualização;
- Agora você pode chamar o método isJavaScriptEnabled() em uma página do Puppeteer para descobrir se o JavaScript está habilitado na sua página.
Correções de Bugs:
- Agora, o Puppeteer está muito melhor em encerrar os processos remanescentes do navegador, especialmente quando você sai de um teste utilizando o comando Ctrl-C.
Por baixo dos panos:
- A equipe do Puppeteer começou a trabalhar em um novo sistema de documentação. Esse novo sistema utiliza o TSDoc para gerar a documentação a partir do código-fonte de sua aplicação, e tendo transportado a documentação para o código de acordo.
Gostou desta notícia? Comente abaixo!
Referências: https://github.com/puppeteer/puppeteer/releases/tag/v4.0.0