Tutorial do Puppeteer - Um Excelente Guia de Aprendizagem do Tutorial 1 e 2 do Puppeteer

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.

Tutorial do Titereiro - Titereiro
Tutorial do Titereiro – Marionetista

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.

Deixe um comentário