CÓMO HACER CAPTURA DE PANTALLA DE UNA WEB CON NODEJS

Hacer una captura de pantalla con NodeJS se puede hacer de varias maneras y con varios módulos de npm. En este post voy a explicar cómo hacer captura de pantalla de una web con NodeJS con Puppeteer. Puppeteer es un módulo mantenido por el equipo de Chrome y funciona perfectamente en modo sin cabeceras.
Lo primero es instalara el módulo Puppeteer:

npm install puppeteer
Y luego tener un fichero con el código de NodeJS:

const puppeteer = require('puppeteer');

(async () => {
  // Lanzar navegador headless
  const browser = await puppeteer.launch({
    headless: true,      // o "new" en versiones recientes
    args: ['--no-sandbox', '--disable-setuid-sandbox']
  });

  const page = await browser.newPage();

  // Opcional: configurar tamaño de viewport
  await page.setViewport({ width: 1920, height: 1080 });

  await page.goto('https://www.example.com', {
    waitUntil: 'networkidle2',  // espera a que no haya más de 2 peticiones en 500ms
    timeout: 30000
  });

  // Captura completa de la página (scroll automático)
  await page.screenshot({
    path: 'captura-completa.png',
    fullPage: true,      // importante para páginas largas
    type: 'png',    // o 'jpeg' si quieres más compresión
    quality: 100    // solo para jpeg
  });

  // También puedes capturar solo un elemento específico
  // const elemento = await page.$('#mi-div');
  // await elemento.screenshot({ path: 'solo-div.png' });

  await browser.close();
  console.log('Captura guardada como captura-completa.png');
})();