Introducción a Playwright

Playwright es un marco de automatización web de código abierto desarrollado por Microsoft, utilizado para realizar pruebas de extremo a extremo en los tres motores de navegador: Chromium, Firefox y WebKit.

En pocas palabras, es una herramienta que te permite controlar el navegador mediante programación. Podemos imaginarlo como un usuario virtual que, al igual que una persona, puede realizar diversas acciones en una página web: hacer clic en botones, rellenar formularios, navegar a diferentes páginas, tomar capturas de pantalla y guardar contenido web.

Playwright es un marco moderno de automatización de navegadores de código abierto de Microsoft. Con poco código, automatiza las operaciones humanas en el navegador en Chromium (Chrome/Edge), Firefox y WebKit (motor de Safari): abrir páginas, hacer clic, escribir, arrastrar, subir archivos, capturas de pantalla/PDF, grabación de logs y reproducción. Su uso más común son las pruebas de extremo a extremo (E2E), y también se puede utilizar para rastreo ligero y automatización de flujos.

Playwright ofrece SDK en JS/TS, Python, Java y .NET. La combinación más popular es JS/TS + Playwright Test.

Navegadores compatibles

NavegadorMotor de renderizadoPlataformas compatibles
ChromiumBlink (igual que Chrome)Windows / macOS / Linux
FirefoxGeckoWindows / macOS / Linux
WebKitWebKit (igual que Safari)Windows / macOS / Linux

Playwright utiliza versiones de prueba de los navegadores oficiales (Chromium en lugar de Google Chrome, WebKit en lugar de Safari), pero su comportamiento es altamente consistente con las versiones oficiales.


Principales casos de uso de Playwright

Playwright no solo se utiliza para pruebas; sus potentes funciones lo hacen valioso en múltiples áreas:

  • Pruebas de extremo a extremo (E2E):Es el uso principal de Playwright. Puede simular escenarios de uso reales y comprobar si todo el flujo de tu sitio web funciona correctamente de principio a fin.
  • Rastreo web y extracción de datos:Si deseas obtener datos de páginas web automáticamente, Playwright puede ayudarte fácilmente. Puede renderizar contenido cargado dinámicamente con JavaScript, lo que lo hace más potente que las herramientas de rastreo tradicionales.
  • Automatización web:Cualquier operación web repetitiva, como check-ins automáticos, descarga de archivos por lotes, cumplimentación de informes, etc., se puede automatizar con Playwright.
  • Generación de capturas de pantalla y PDF:Puedes usar Playwright para capturar páginas web o guardar el contenido de una página como archivo PDF.

¿Qué puede hacer Playwright?

En una frase:Casi todo lo que una persona puede hacer clic en el navegador, Playwright puede automatizarlo.。

Las capacidades específicas incluyen:

  • Soporte multinavegador: un mismo código se ejecuta simultáneamente en Chromium (Chrome/Edge), Firefox y WebKit (Safari).
  • Ejecución multiplataforma: compatible con Windows, Linux y macOS.
  • Soporte en varios lenguajes: no solo JavaScript/TypeScript, sino también Python, C# y Java.
  • Soporte para páginas web modernas: manejo estable de aplicaciones de una sola página (SPA), carga dinámica, iframes y múltiples pestañas.

Por ejemplo:
Quieres probar una función de "iniciar sesión".

  • Prueba manual: abrir el navegador cada vez → introducir usuario y contraseña → hacer clic en iniciar sesión → verificar la página.
  • Prueba con Playwright: escribir un script que realice automáticamente las acciones anteriores, y puede repetirse cientos de veces sin esfuerzo.

Playwright vs otras herramientas de prueba

Playwright vs Puppeteer

Dimensión de comparaciónPlaywrightPuppeteer
Soporte de navegadoresChromium + Firefox + WebKitSolo Chromium / Firefox (limitado)
Ejecutor de pruebasTest Runner completo integradoNo integrado, requiere combinarlo con Jest/Mocha
Espera automáticaTotalmente integradaRequiere manejo manual
Aislamiento de pruebasSoporte nativo de Browser ContextDebe gestionarse uno mismo
Emulación de dispositivos móvilesEmulación de dispositivos completaEmulación de dispositivos básica
MantenedorMicrosoftGoogle

Puppeteer es adecuado para scripts simples de automatización de navegador.

Playwright supera ampliamente en completitud de funciones y experiencia de pruebas, siendo la opción preferida para escenarios de prueba.

Playwright vs Cypress

Dimensión de comparaciónPlaywrightCypress
ArquitecturaEjecución fuera de proceso, control total del navegadorSe ejecuta dentro del navegador (limitado por sandbox)
Múltiples pestañas / múltiples ventanasSoporte completoSin soporte
Múltiples navegadoresChromium + Firefox + WebKitSolo familia Chromium + Firefox/WebKit experimental
Soporte de iframesSoporte nativoLimitado
Ejecución en paraleloSoporte nativo, sin configuración adicionalRequiere Dashboard de pago
Intercepción de redIntercepción y modificación completa de solicitudes/respuestasSolo Stub o Spy
Velocidad de ejecuciónGeneralmente más rápidaGeneralmente más lenta (costo de ejecución dentro del navegador)

Cypress ofrece una excelente experiencia para desarrolladores y una interfaz de depuración amigable.

Si necesitas soporte multinavegador, operación con múltiples pestañas o ejecución en paralelo de grandes conjuntos de pruebas, Playwright es más adecuado.

Playwright vs Selenium

Al hablar de automatización de navegadores, lo primero en lo que muchos piensan esSeleniumEntonces, ¿cuál es la diferencia entre Playwright y este?

Característica Selenium Playwright
Fecha de aparición 2004, con una larga historia 2020, un recién llegado destacado
Soporte de navegadores Chrome, Firefox, Safari, IE, etc. Chromium, Firefox, WebKit (cobertura completa de navegadores modernos)
Diseño de API Muchas interfaces tempranas, algo complejo API simple y moderna, bajo costo de aprendizaje
Velocidad de ejecución Más lenta, a menudo con problemas de espera Más rápida, menos timeouts
Funciones especiales Más potente, ecosistema maduro Soporte nativo de capturas de pantalla, grabación de video y mock de solicitudes de red

Comparación en una frase:

  • Selenium es más como un "jugador veterano polivalente", con una larga historia y un gran ecosistema.
  • Playwright es más como un "joven cañón": rápido, compatible con las características web modernas y con una API más amigable.


¿Para qué escenarios es adecuado?

Playwright no solo sirve para pruebas, también se puede utilizar en muchos escenarios:

  • Pruebas de frontend: prueba automáticamente si los botones, formularios, navegación, etc. de la página web funcionan correctamente.
  • Pruebas de regresión: antes de lanzar una nueva función, ejecuta todos los casos de prueba del sitio para garantizar que las funciones antiguas no fallen.
  • Recopilación de datos (crawler): rastrear páginas web dinámicas (por ejemplo, datos que solo se ven al hacer scroll).
  • Capturas de pantalla y PDF de páginas web: genera capturas de pantalla o PDF de las páginas (por ejemplo, para generar informes).
  • Automatización de procesos: automatiza operaciones repetitivas (como inicio de sesión automático, relleno de formularios por lotes).

¿Por qué aprender Playwright?

  • Amigable para principiantes: instalación simple, se puede ejecutar con unas pocas líneas de código.
  • API intuitiva: conpage.click()、page.fill()se pueden realizar operaciones en la página web.
  • Aprenderlo puede generar ingresos: se utiliza en desarrollo front-end, ingeniería de pruebas, e incluso en algunos trabajos a tiempo parcial de recopilación de datos.
  • Comunidad activa: Playwright se actualiza rápidamente, la documentación es clara y es fácil encontrar soluciones cuando surgen problemas.

Resumen en una frase:
Playwright = un "robot inteligente" que abre páginas web, hace clic en botones, rellena formularios y toma capturas de pantalla automáticamente. Sirve tanto para hacer pruebas, como para usarlo de rastreador web, y también para crear pequeñas herramientas de automatización.


¿Por qué elegir Playwright?

Para principiantes, Playwright tiene varias características muy atractivas:

  • Espera automática:Esta es una de las funciones más potentes de Playwright. Al escribir scripts de automatización, a menudo necesitas esperar a que un elemento se cargue o se vuelva visible. Playwright incluye un mecanismo inteligente de espera automática queespera automáticamentea que el elemento esté disponible, sin necesidad de agregar manualmente las engorrosassleepowaitfunciones. Esto hace que tu código sea más limpio y estable.
  • Rápido y confiable:Playwright es muy rápido en su ejecución porque se comunica directamente con el navegador, sin pasar por un protocolo intermedio. Esta conexión directa garantiza la estabilidad y fiabilidad de las operaciones.
  • API potente:La API de Playwright está diseñada de forma muy intuitiva. Proporciona una gran variedad de métodos de operación que te permiten manejar fácilmente interacciones web complejas, como ventanas emergentes, carga de archivos, gestión de nuevas pestañas, etc.
  • Marco de pruebas integrado:El equipo de Playwright también ofrece un potente ejecutor de pruebas@playwright/test. Este marco incluye bibliotecas de aserciones, generadores de informes de pruebas y funciones avanzadas como ejecución paralela, lo que facilita mucho la escritura y gestión de casos de prueba.

La ventaja más importante de Playwright es su soporte multinavegador.Puede controlar simultáneamenteChromium(Google Chrome y Microsoft Edge),FirefoxyWebKit(el motor de Safari), estos tres navegadores principales. Esto significa que solo necesitas escribir un conjunto de código para ejecutar tus scripts de automatización en todos estos navegadores, reduciendo en gran medida el trabajo repetitivo.


Las cuatro características principales de Playwright

1. Soporte real de múltiples navegadores

Playwright es el único marco de pruebas que soporta simultáneamente los tres motores de navegador: Chromium, Firefox y WebKit.

Cada navegador tiene una capa de controlador dedicada (Chromium usa CDP, Firefox usa el protocolo Juggler, WebKit usa el protocolo personalizado de Playwright), lo que garantiza la estabilidad y consistencia de las operaciones subyacentes.

2. Mecanismo de espera automática

Playwright, antes de ejecutar cada operación, espera automáticamente a que el elemento esté en un estado operable (adjunto al DOM, visible, estable, que pueda recibir eventos, habilitado).

Las aserciones también se reintentan automáticamente hasta que se cumpla la condición o se agote el tiempo.

Esto resuelve fundamentalmente el problema más común en las pruebas tradicionales: laspruebas inestables (flaky tests).

3. Aislamiento de pruebas

Playwright introduce el concepto deBrowser Contextcontexto de navegador: cada prueba se ejecuta en un contexto de navegador independiente (equivalente a un perfil de navegador completamente nuevo).

Cada contexto tiene su propio localStorage, sessionStorage y cookies, por lo que las pruebas no se afectan entre sí.

El costo de crear un contexto es extremadamente bajo (en milisegundos), mucho más rápido que iniciar una nueva instancia del navegador cada vez.

4. Soporte multilingüe

Playwright ofrece API en cuatro lenguajes: JavaScript/TypeScript, Python, Java y .NET. Todos los lenguajes comparten la misma filosofía de diseño y funcionalidades.

LenguajeComando de instalaciónCasos de uso
JavaScript / TypeScript
npm init playwright@latest
Equipos de front-end, proyectos Node.js
Python
pip install playwright
Ecosistema Python, proyectos de IA/ML
JavaDependencia de Maven/GradleProyectos Java de nivel empresarial
.NETPaquete NuGetPila tecnológica de Microsoft

Matriz de productos de Playwright

Playwright no es una herramienta única, sino una plataforma que incluye múltiples componentes:

ProductoUsoMétodo de instalación
Playwright TestMarco completo de pruebas de extremo a extremo
npm init playwright@latest
Playwright LibraryBiblioteca de scripts de automatización de navegador
npm i playwright
Playwright MCPControl de navegador por agente de IA (protocolo MCP)
npx @playwright/mcp@latest
Playwright CLIHerramienta de línea de comandos para Coding Agent
npm i -g @playwright/cli@latest
Extensión de VS CodeDepuración y grabación de pruebas dentro del editorVS Code Marketplace
Otras extensiones