O Puppeteer é um framework java de código aberto que é desenvolvido com a biblioteca node-js. O Puppeteer tem a capacidade de funcionar como uma ferramenta de raspagem da web. Ele também pode ser usado como uma automação de teste para aplicativos baseados na web, como o driver da web selenium. A popularidade do Puppeteer está aumentando rapidamente para automação de testes. Os pré-requisitos para percorrer o Tutorial Puppeteer são conhecimentos básicos de linha de comando, JavaScript, conceito de OOPs e estrutura HTML DOM. O completo Tutorial de marionetista é distribuído em tópicos que são mencionados na tabela de conteúdo abaixo.
Tutorial do Titereiro
Tutorial Tosca # 1: Visão geral do titereiro
Tosca Tutorial # 2: Variáveis de ambiente do titereiro
Tosca Tutorial # 3: Visão geral da criação da Web do Puppeteer e da automação do teste do Puppeteer
Tosca Tutorial # 4: Instale o Puppeteer
Neste artigo de Tutorial do Titereiro, explicaremos sobre a Visão geral do marionetista e as variáveis de ambiente do marionetista.
Visão geral do titereiro
O Puppeteer é um framework Java de código aberto que é desenvolvido com a biblioteca node-js. O Puppeteer é capaz de controlar o navegador Chrome sobre o protocolo devtool com a ajuda da interface de aplicativo de alto nível (API). O Puppeteer é capaz de controlar os navegadores cromados headful e headless.
A estrutura do Puppeteer é introduzida pelo Google. Quanto à funcionalidade, não é um conceito novo. Mas torna o trabalho mais fácil. Fundamentalmente, ele resume uma lista de atividades por meio de um pacote compactado.
Como funcionam os titereiros?
- Puppeteer usa a biblioteca Node JS.
- O Node JS permite o uso de APIs de alto nível.
- As APIs são capazes de controlar o navegador Chrome sobre o protocolo devtool.
- Por padrão, o Puppeteer funciona com navegadores Chrome headless, mas também pode interagir com navegadores Chrome headful, alterando a configuração padrão.
Protocolo Chrome DevTools:
Usando o protocolo Chrome DevTools, ferramentas como o Puppeteer são capazes de instrumentar, inspecionar, depurar e criar perfis de navegadores baseados em intermitência, como Chromium, Chrome, etc.
Aqui, a instrumentação do navegador é dividida em vários domínios, como DOM, Debugger, Rede, etc. Cada domínio explica todos os diferentes comandos suportados e os eventos gerados.
Características do Puppeteer:
- Os processos manuais por meio do navegador Chrome podem ser automatizados.
- Ele pode capturar imagens de qualquer página da web e gerar a imagem ou o arquivo PDF da imagem.
- Um aplicativo de página única pode ser desenvolvido para renderização do lado do servidor usando o Puppeteer.
- Ele pode automatizar o envio de formulários da web, testes de IU, entrada de teclado, etc., com pontos de verificação.
- Ele fornece mais controle sobre o navegador Chrome.
- O modo sem cabeça padrão é muito rápido.
- Suporta web scraping.
- Capacidade de medir a renderização e o tempo de carregamento usando as ferramentas de análise de desempenho do Chrome.
Marionetista vs Marionetista-núcleo:
Desde a versão v1.7.0 do Puppeteer, abaixo de dois pacotes, estão disponíveis em todas as versões -
- pacote puppeteer-core
- pacote de titereiro
Pacote do núcleo do Puppeteer:
Núcleo de titereiro é uma biblioteca Node baseada em java que é capaz de realizar qualquer operação que suporte o protocolo DevTools. O Puppeteer-core não baixa o Chromium durante a instalação. Como uma biblioteca, o Puppeteer-core é completamente conduzido por sua interface programática. Além disso, os recursos do Puppeteer-core não podem ser personalizados por todas as variáveis PUPPETEER_ * env. O comando básico para instalar o Puppeteer-core -
npm install puppeteer-core
# or "yarn add puppeteer-core"
Ao usar o puppeteer-core, as declarações de inclusão serão semelhantes a abaixo -
const puppeteer = require('puppeteer-core')
Quando usar o Puppeteer-Core:
- Para desenvolver o projeto Puppeteer para usar o navegador Chrome existente sobre o protocolo DevTools, onde o download adicional do chromium não é necessário.
- Para desenvolver outro produto de usuário final ou biblioteca sobre o protocolo DevTools. Por exemplo, um projeto pode construir um gerador de captura de tela usando puppeteer-core e escrever um script setup.js personalizado que baixa headless_shell em vez de Chromium para economizar armazenamento.
Pacote de titereiro:
Marionetista é um produto completo para automação do navegador Chrome ou Chromium. Durante a instalação, ele baixa a versão mais recente do Chromium e, depois disso, é dirigido pelo núcleo do titereiro. Como um produto para o usuário final, o Puppeteer suporta todas as variáveis env PUPPETEER_ * para personalizar seu comportamento. O comando básico para instalar o Puppeteer -
npm install puppeteer
# or "yarn add puppeteer"
Ao usar o Puppeteer, inclua instruções que serão parecidas com a abaixo -
puppeteer = require(‘puppeteer’)
Diferença entre Puppeteer e Puppeteer-core:
- Puppeteer-core não baixa o navegador Chromium automaticamente durante a instalação.
- O Puppeteer-core não considera todas as variáveis PUPPETEER_ * env.
- Na maioria dos projetos, estamos usando o pacote de produtos Puppeteer.
Chrome sem cabeça:
O cromo sem cabeça significa que o Puppeteer está interagindo com um navegador cromado como um aplicativo de fundo, o que significa que a IU do Chrome não está visível na tela. Por padrão, o Puppeteer inicia o aplicativo como cromo sem cabeça. Amostra de código para iniciar o Headless Chrome -
Neste exemplo, estamos abrindo o cromo sem cabeça, ou seja, a IU do Chrome não ficará visível. Isso pode ser feito passando o sinalizador headless como true para o método Puppeteer.launch ().
const puppeteer = require('puppeteer');
(async () => {
const browser = await puppeteer.launch({ headless: true });
// Specify statements for Headless Chrome operations
await browser.close();
})();
Chrome de cabeça:
Headful chrome significa que o Puppeteer está interagindo com um navegador Chrome para o qual a IU do Chrome está visível na tela. Por padrão, o Puppeteer inicia o aplicativo como cromo sem cabeça. Amostra de código para iniciar o Headful Chrome -
Neste exemplo, estamos abrindo o cromo, que é visível para nós. Isso pode ser feito passando o sinalizador headless como falso para o método Puppeteer.launch ().
const puppeteer = require('puppeteer');
(async () => {
const browser = await puppeteer.launch({ headless: false});
// Specify statements for Headless Chrome operations
await browser.close();
})();
Variáveis de ambiente do titereiro
Puppeteer trabalha com variáveis de ambiente predefinidas para apoiar suas operações. Se o Puppeteer não encontrar as variáveis de ambiente durante a instalação, uma variante em minúsculas dessas variáveis será usada a partir da configuração do npm (gerencia o arquivo de configurações do NPM). As variáveis de ambiente não são consideradas pelo pacote Puppeteer-core. As variáveis de ambiente mais importantes do Puppeteer são -
- PUPPETEER_SKIP_CHROMIUM_DOWNLOAD: Ele instrui para não baixar o Chromium empacotado durante a etapa de instalação.
- PUPPETEER_DOWNLOAD_HOST: Substitui o prefixo do URL que pode ser usado para fazer download do Chromium.
- PUPPETEER_DOWNLOAD_PATH: Sobrescreve o caminho da pasta de download. O caminho padrão é - “ /.local-chromium/ ”onde é a raiz do pacote do titereiro.
- HTTP_PROXY, HTTPS_PROXY, NO_PROXY: Essas variáveis definem as configurações de proxy para baixar o Chromium durante a instalação.
- PUPPETEER_CHROMIUM_REVISION: Ele define uma versão específica do Chromium a ser usada pelo Puppeteer.
- PUPPETEER_EXECUTABLE_PATH: Ele especifica um caminho executável a ser usado no método Puppeteer.launch.
- PUPPETEER_PRODUCT: Define qual navegador deve ser usado pelo Puppeteer. O valor deve ser chrome ou firefox.
Conclusão:
Neste artigo introdutório sobre o Tutorial do Puppeteer, aprendemos sobre a visão geral do Puppeteer e as variáveis de ambiente do Puppeteer. No próximo artigo do Tutorial de marionetista, aprenderemos sobre a visão geral do Puppeteer Web Scraping e da Automação de Teste do Puppeteer. Por favor clique SUA PARTICIPAÇÃO FAZ A DIFERENÇA para visitar o portal de referência para este tutorial do Puppeteer. Além disso, por favor clique SUA PARTICIPAÇÃO FAZ A DIFERENÇA para aprender Selenium com LambdaGeeks.
Olá, sou K. Mondal e estou associado a uma organização líder. Tenho mais de 12 anos de experiência profissional em domínios, por exemplo, desenvolvimento de aplicativos, testes de automação, consultor de TI. Estou muito interessado em aprender diferentes tecnologias. Estou aqui para cumprir minha aspiração e atualmente contribuindo como autor e desenvolvedor de sites no LambdaGeeks.
Vamos nos conectar através do LinkedIn-