Saltar al contenido

Puppeteer

Qué es Puppeteer, cómo hace capturas de pantalla y cómo se compara con Playwright para automatizar navegadores.

Puppeteer es una biblioteca de código abierto para Node.js mantenida por el equipo de Chrome de Google. Controla Chrome o Chromium, y también Firefox, a través del Chrome DevTools Protocol o de WebDriver BiDi. Se ejecuta en modo headless de forma predeterminada, así que las páginas se cargan y se renderizan sin una ventana visible.

Un script de Puppeteer inicia un navegador, abre páginas y trabaja con ellas como lo haría un usuario: navega, hace clic, escribe y espera el contenido. La biblioteca se usa habitualmente para capturas de pantalla, generación de PDF, extracción de datos, comprobaciones de rendimiento y pruebas automatizadas de aplicaciones web basadas en Chrome.

Qué puede hacer Puppeteer

  • Iniciar Chrome, Chromium o Firefox, o conectarse a un navegador en ejecución.
  • Definir la ventana gráfica, el user agent, la geolocalización y las condiciones de red.
  • Hacer clic, escribir, enviar formularios y esperar selectores o la ausencia de actividad de red.
  • Interceptar solicitudes para bloquear anuncios, imágenes o rastreadores.
  • Guardar capturas con page.screenshot() y PDF con page.pdf().

Puppeteer para capturas de pantalla

page.screenshot() guarda una salida en PNG, JPEG o WebP. La opción fullPage captura todo el documento desplazable, clip captura un rectángulo y un handle de elemento captura un solo elemento. page.setViewport() define el ancho, la altura y el deviceScaleFactor, que decide si la salida tiene resolución 1x o 2x.

page.pdf() es distinto de una captura de pantalla. Usa el diseño de impresión del navegador y el CSS de impresión, así que puede paginar la página u ocultar elementos, mientras que page.screenshot() registra la pantalla renderizada.

Puppeteer frente a Playwright

Puppeteer es una biblioteca de JavaScript centrada en Chrome. Playwright admite Chromium, Firefox y WebKit, ofrece enlaces para JavaScript, Python, Java y .NET, e incluye un ejecutor de pruebas integrado. Puppeteer encaja en proyectos de Node.js que solo necesitan Chrome; Playwright encaja en equipos que necesitan el motor WebKit de Safari u otro lenguaje.

Errores comunes

  • Capturar justo después de la navegación, antes de que carguen las fuentes y las imágenes.
  • Esperar que page.pdf() se vea igual que la pantalla.
  • Ejecutar muchas instancias de navegador a la vez y quedarse sin memoria.
  • Olvidar cerrar el navegador, lo que deja procesos en ejecución.

¿Tomas las mismas capturas una y otra vez?

Website Capture de Temposhot carga una lista de URL en navegadores locales gestionados y guarda una imagen por URL, con el área Viewport o Full page. Consulta la automatización de capturas de sitios web.

Preguntas frecuentes

¿Puppeteer solo sirve para Chrome?

Chrome es el objetivo principal. Puppeteer también admite Firefox mediante WebDriver BiDi.

¿Puppeteer puede capturar pantallas Retina?

Sí. Define deviceScaleFactor en 2 en page.setViewport() para obtener el doble de ancho y alto en píxeles.

¿Puppeteer requiere programar?

Sí. Es una biblioteca que se usa desde código JavaScript o TypeScript que se ejecuta en Node.js.

Fuentes

Recursos relacionados

¿Repites las mismas capturas de pantalla una y otra vez?

Temposhot captura una pantalla, una ventana o un área con temporizador y exporta el conjunto como PDF, imágenes, ZIP o MP4. Las herramientas gratuitas para navegador solo sirven para imágenes sueltas.

Recursos relacionados

Términos relacionados

Todos los términos del glosario