npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2025 – Pkg Stats / Ryan Hefner

playwright-io

v1.0.3

Published

Mobile Testing with Playwright runner

Readme

npm version TypeScript npm downloads GitHub issues license

Automatización móvil con Playwright runner y WebDriverIO

¿Por qué Playwright-IO?

Playwright-IO es una librería TypeScript que extiende las capacidades de testing de Playwright con soporte nativo para automatización móvil. Construida sobre WebDriverIO y el ecosistema Appium, esta librería proporciona integración perfecta entre la API moderna de testing de Playwright y la automatización de dispositivos móviles.

Combina lo mejor de Playwright y WebDriverIO para automatización móvil:

  • 🚀 Runner de Playwright: Aprovecha todas las características del runner de Playwright
  • 📱 Automatización móvil: Soporte completo para aplicaciones iOS y Android
  • ♻️ WebDriverIO: Utiliza la potencia de WebDriverIO para interacciones móviles
  • Paralelización: Ejecuta pruebas en paralelo automático
  • 📸 Capturas automáticas: Screenshots, videos y traces incluidos

✨ Características Principales

Funcionalidad

  • Extensión de Playwright: Extiende perfectamente Playwright con capacidades de automatización móvil
  • Automatización de Aplicaciones Nativas: Soporte completo para testing de apps nativas Android y iOS
  • Testing de Navegadores Móviles: Automatización de Chrome, Safari y WebView en dispositivos móviles
  • Cambio de Contexto Híbrido: Transición perfecta entre contextos nativos y web
  • Resolución de Elementos Cross-Platform: Estrategias de selectores adaptativas por plataforma
  • Sistema de Fixtures Mejorado: Fixtures específicas para móviles integradas con el test runner de Playwright
  • Integración de Servicios: Soporte nativo y estable para cualquier servicio del ecosistema WDIO

Características Técnicas

  • TypeScript-First: Seguridad de tipos completa con implementación estricta de TypeScript
  • Integración Playwright: Test runner nativo de Playwright con soporte de fixtures mejorado
  • Backend WebDriverIO: Automatización móvil robusta vía WebDriverIO y Appium
  • Gestión de Sesiones: Ciclo de vida inteligente de sesiones WebDriver y connection pooling
  • Manejo de Errores: Capacidades de recuperación de errores y debugging integral
  • Grabación Flexible: Soporte para configuración de grabación boolean y basada en objetos
  • Arquitectura de Servicios: Hooks nativos y lifecycle management completo de servicios WDIO

Instalación

npm install playwright-io

🎯 Beneficios Clave

  • 🚀 Servicios Listos: Usa cualquier servicio de WebDriverIO directamente en producción
  • 🔄 Hooks Automáticos: Los hooks se ejecutan automáticamente en el contexto correcto
  • 📊 Compatibilidad Total: Formateo automático de datos para servicios que esperan formato Mocha
  • ⚡ Performance Optimizada: Gestión optimizada de servicios launcher y worker
  • 🛡️ Estabilidad Garantizada: Funcionalidad completamente probada y lista para producción

Uso básico

  1. Configura tu playwright.config.ts con dispositivos móviles
  2. Escribe tus pruebas usando el driver global
  3. Ejecuta las pruebas con el runner de Playwright
import { test, expect } from 'playwright-io';

test('Mi primera prueba móvil', async () => {
  await driver.url('https://example.com');
  await driver.$('#button').click();
  expect(await driver.$('#result').getText()).toBe('Success');
});

🏗️ Arquitectura de Integración

Para lograr una integración óptima entre el test runner de Playwright y las capacidades de automatización móvil de WebDriverIO, se han implementado las siguientes mejoras arquitectónicas:

Modificaciones de Integración WebDriverIO

  • Lifecycle Hooks: Los hooks nativos de WebDriverIO (onPrepare, onWorkerStart, beforeTest, afterTest, etc.) están integrados internamente y se ejecutan automáticamente sin intervención del usuario. Para personalizar el comportamiento de tus tests, usa los hooks equivalentes de Playwright (beforeEach, afterEach, beforeAll, afterAll).
  • Adaptador de Configuración: La configuración de WebDriverIO es adaptada dinámicamente para trabajar dentro del contexto del test runner de Playwright, removiendo opciones duplicadas o conflictivas.

Detalles de Implementación Personalizada

  • Adaptación de Estrategia de Selectores: El motor de selectores de WebDriverIO está envuelto con métodos personalizados (locator$, locator$$) para proporcionar una API consistente que se integra con el manejo de elementos de Playwright.
  • Aislamiento de Sesiones: Cada test recibe una sesión WebDriver aislada gestionada a través del sistema de fixtures de Playwright, asegurando limpieza apropiada e independencia de tests.
  • Traducción de Protocolo: Los comandos del protocolo WebDriver son transparentemente traducidos para trabajar dentro del contexto de ejecución y sistema de reportes de Playwright.

Documentación

Para más detalles y ejemplos avanzados, revisa la carpeta docs/ del proyecto.

🙏 Agradecimientos

Este proyecto no habría sido posible sin la inspiración y el trabajo de increíbles desarrolladores de la comunidad:

WebDriverIO Team

Un agradecimiento especial al equipo de WebDriverIO por el excelente trabajo en el wdio-video-reporter y la lógica de grabación de videos que hemos adaptado para esta librería. Su implementación robusta y bien documentada fue fundamental para integrar las capacidades de grabación de pantalla en el contexto de Playwright.

Vitaliy Potapov (@vitalets)

Profundo agradecimiento a Vitaliy Potapov por su inspiración y enfoque en la documentación. Su trabajo en proyectos como playwright-bdd y su estilo de documentación clara y comprensible sirvieron como modelo para esta librería. Su estructura de proyecto y metodología de documentación han sido adoptadas con gran respeto por su claridad y facilidad de comprensión.

Estos proyectos y desarrolladores demuestran la fuerza de la comunidad open source y cómo el trabajo colaborativo puede crear herramientas excepcionales para todos.

Changelog

Consulta los últimos cambios en el CHANGELOG.md.

Licencia

Este proyecto está bajo la licencia MIT.