Titiritero de Node.js

Puppeteer es una biblioteca de código abierto para Node.js que ayuda a automatizar y simplificar el desarrollo al proporcionar control sobre las herramientas de los desarrolladores. Permite a los desarrolladores escribir y mantener pruebas simples y automatizadas. La mayoría de las cosas que se hicieron manualmente en el navegador se pueden hacer usando titiritero. Las características de Titiritero son:

  • Puede funcionar como un rastreador web.
  • Puede generar capturas de pantalla de las páginas.
  • Puede hacer archivos PDF de páginas web.
  • Puede automatizar el proceso de prueba y envío de formularios.
  • Se puede utilizar para probar extensiones de Chrome.
  • Crea un entorno actualizado y automatizado para las pruebas, de modo que las pruebas se puedan ejecutar directamente en el navegador (Google Chrome).
  • Crea su propio perfil de usuario del navegador que se limpia cada vez que se ejecuta esta biblioteca.

Instalación: Para el primer paso, inicialice la aplicación con el archivo package.json . Por lo tanto, ejecute el siguiente comando:

npm init

Para instalar la biblioteca, escriba el siguiente comando:

npm install puppeteer --save

Después de la instalación, nuestro archivo package.json se verá así:

{
  "name": "day37",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": "Pranjal Srivastava",
  "license": "ISC",
  "dependencies": {
    "puppeteer": "^3.1.0"
  }
}

Implementación: Titiritero básicamente crea una instancia del navegador y luego manipula las páginas del navegador. Veamos una implementación de titiritero para navegar a una página web :

const puppeteer = require('puppeteer');
  
(async () => {
    const browser = await puppeteer.launch();
    const page = await browser.newPage();
    await page.goto('https://www.geeksforgeeks.org/');
    
    await browser.close();
})();

En primer lugar, estamos creando una instancia del navegador y permitiendo que se inicie la biblioteca del titiritero. Aquí,
browser.newPage() se usa para crear una nueva página y luego navegar a la URL provista en page.goto() como parámetro. Y, finalmente, browser.close() se usa para cerrar todo el proceso en ejecución. El nombre de nuestro archivo javascript es index.js , por lo tanto, para ejecutar la aplicación, simplemente escriba el siguiente comando en la terminal:

node index.js

El código anterior iniciará el navegador web predeterminado en su sistema y navegará a https://www.geeksforgeeks.org/

Tome una captura de pantalla de la página web: para tomar la captura de pantalla de una página web, escriba el siguiente código:

const puppeteer = require('puppeteer');
  
(async () => {
    const browser = await puppeteer.launch();
    const page = await browser.newPage();
    await page.goto('https://www.geeksforgeeks.org/');
    await page.screenshot({ path: 'GFG.png' });
    await browser.close();
})();

Aquí, el método page.screenshot tomará la captura de pantalla de la página y la guardará con el nombre de archivo GFG.png . El código anterior primero abrirá la página y luego tomará la captura de pantalla de la página.

Ejecute la aplicación con el comando –

node index.js

La salida para el código anterior será:

Para crear un PDF para el sitio web dado: para crear un PDF de un sitio web, escriba el siguiente código:

const puppeteer = require('puppeteer');
  
(async () => {
    const browser = await puppeteer.launch();
    const page = await browser.newPage();
    await page.goto('https://www.geeksforgeeks.org/');
    await page.pdf({ path: 'gfg.pdf' });
  
    await browser.close();
})();

Aquí, page.pdf() creará el PDF del sitio web dado y lo guardará con el nombre gfg.pdf . Ejecute la aplicación con el comando –

node index.js

El código anterior generará un PDF de la página.
La salida para el código anterior será:

Para obtener las dimensiones de la página web abierta: Para obtener las dimensiones de una página, escriba el siguiente código:

const puppeteer = require('puppeteer');
  
(async () => {
  const browser = await puppeteer.launch();
  const page = await browser.newPage();
  await page.goto('https://www.geeksforgeeks.org/');
  
  const getDimensions = await page.evaluate(() => {
    return {
      width: document.documentElement.clientWidth,
      height: document.documentElement.clientHeight
    };
  });
  
  console.log(getDimensions);
  
  await browser.close();
})();

Aquí, getDimensions primero evaluará la página y luego devolverá el ancho y el alto de la página. Las propiedades clientWidth y clientHeight se utilizan para obtener el ancho y el alto de la página, respectivamente. Ejecute la aplicación con el comando –

node index.js

La salida para el código anterior será:

{
width: 1366px,
height: 695px
}

Configuración por defecto:

  • Se ejecuta en modo sin cabeza: el modo sin cabeza de un navegador proporciona pruebas automatizadas y entornos de servidor. Es una forma de ejecutar el navegador sin su GUI completa. La ventaja de usar el navegador en modo sin cabeza es que ejecuta continuamente las pruebas de javascript. La configuración predeterminada para un navegador sin cabeza es verdadera en titiritero. Para hacerlo falso, escribe el siguiente código:
    const browser = await puppeteer.launch({ headless: false })
  • Ejecuta la versión específica de Chrome: Por defecto, titiritero usa la versión específica de Chrome. Si desea ejecutar alguna otra versión del código, escriba lo siguiente:
    const browser = await puppeteer.launch({ executablePath:
                 '/path/to/your/version/of/Chrome' });

    Aquí, la propiedad executablePath le permite especificar la ruta a su versión de Chrome.

Conclusión: en este artículo, aprendimos sobre la biblioteca de titiriteros de Node.js. También aprendimos sobre las diversas características de esta biblioteca. Hemos visto sus implementaciones y la configuración predeterminada utilizada por esta biblioteca.

Publicación traducida automáticamente

Artículo escrito por pranjal_srivastava y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *