Si eres QA tester en España en 2026, probablemente te has hecho esta pregunta al menos una vez: ¿sigo con Selenium, aprendo Playwright o me paso a Cypress? Y si ya has mirado comparativas online, seguramente encontraste artículos de 2022 con datos obsoletos o posts patrocinados que no dicen la verdad.
Esta es la comparativa honesta que no encontrarás en ningún otro sitio: datos reales de velocidad y adopción, código real del mismo test en las tres herramientas, salarios reales del mercado español en 2026, y una recomendación sin humo según tu perfil.
Trabajo como QA Automation en Alten con cliente Grifols —entorno enterprise regulado— y llevo años viendo cómo evoluciona el mercado desde dentro. No teoría de LinkedIn: lo que hay en el mundo real.
Resumen ejecutivo: 5 puntos clave antes de seguir
- Playwright es el ganador técnico de 2026. 38 millones de descargas semanales en npm frente a 7,4M de Cypress. Satisfacción del 91% en el State of JS 2025 vs 72% de Cypress. Un 42% más rápido que Selenium en benchmarks independientes.
- Selenium sigue siendo irreemplazable en enterprise. Más de 31.000 empresas lo usan activamente según LinkedIn. En banca, seguros y administración pública en España, Selenium con Java sigue siendo el estándar. No va a desaparecer: está evolucionando con WebDriver BiDi.
- Cypress tiene su espacio, pero se está estancando. Con el 14,4% de adopción vs el 45,1% de Playwright, Cypress ha tocado techo. Sigue siendo excelente para equipos frontend-only con JavaScript, pero la paralelización de pago y la falta de soporte nativo para Safari lo penalizan.
- En España, el mercado pide Selenium en legacy y Playwright en proyectos nuevos. Las ofertas senior piden TypeScript + Playwright. Las ofertas mid/junior todavía piden Selenium + Java. Aprender Playwright hoy es invertir en el futuro.
- La migración Selenium → Playwright tiene coste real pero ROI demostrado. Un equipo real redujo su suite de regresión de 45 minutos a 12 minutos tras migrar. Coste estimado para 200 tests: 3-6 semanas. El ahorro en CI/CD es acumulativo.
Estado actual de las tres herramientas en 2026
Playwright — El nuevo estándar (v1.49+)
Desarrollado por Microsoft desde 2020, Playwright ha llegado a 83.940 GitHub stars y es usado por +424.000 repositorios. Su adopción del 45,1% entre profesionales QA (TestDino, 2025) lo convierte en la herramienta con más crecimiento del sector.
Lo más relevante de los últimos meses: el Playwright MCP (Model Context Protocol) permite a asistentes de IA como GitHub Copilot generar y ejecutar tests directamente. El UI Mode es un depurador visual tipo time-travel. Y el soporte nativo de mobile testing con emulación de dispositivos reales ya está en GA.
Cypress — El favorito de frontend, tocando techo (v15.x)
Con 49.605 GitHub stars y 7,4M de descargas semanales, Cypress sigue siendo una herramienta sólida, especialmente para equipos frontend con JavaScript. El problema: su adopción lleva estancada en el 14,4% desde 2023, y el modelo de negocio —paralelización solo disponible en Cypress Cloud de pago— penaliza a equipos con suites grandes.
El soporte de WebKit (Safari) sigue siendo experimental. Component Testing ya está en GA y es un competidor serio de Vitest para equipos React/Vue.
Selenium — El veterano que resiste (v4.x)
No va a morir. +31.000 empresas lo usan activamente, y en sectores como banca, seguros y administración pública en España, seguirá siendo el estándar durante años. La novedad más importante: Selenium Manager (desde v4.6) gestiona los drivers automáticamente —ya no hace falta configurar chromedriver manualmente. WebDriver BiDi es el protocolo de nueva generación que reducirá la latencia y modernizará la herramienta.
Comparativa técnica honesta
| Criterio | Selenium 4 | Playwright 1.49+ | Cypress 15 |
|---|---|---|---|
| Velocidad (benchmark) | Base (más lento) | 42% más rápido que Selenium | ~23% más lento que Playwright |
| Flakiness | Alta sin waits explícitos | Mínima (auto-wait inteligente) | Media (reintenta automáticamente) |
| Setup inicial | Medio (Selenium Manager lo simplificó) | 1 comando: npm init playwright@latest | 1 comando: npm install cypress |
| Lenguajes | Java, Python, C#, Ruby, JS, Kotlin | JS, TS, Python, Java, C# | Solo JS/TypeScript |
| Safari real | Con SafariDriver (macOS) | WebKit bundled (sin necesitar macOS) | Experimental |
| Mobile testing | Solo con Appium (separado) | Emulación nativa de dispositivos | Emulación viewport (no real) |
| Multi-tab / Multi-dominio | Sí | Sí | Limitado por arquitectura |
| Parallel execution | Con Selenium Grid (necesita infra) | Gratis, nativo con sharding | Requiere Cypress Cloud (de pago) |
| Debugging | Básico (logs, screenshots manuales) | Trace Viewer, UI Mode, vídeo | Time-travel debugger (muy visual) |
| Integración con IA | Plugins terceros | Playwright MCP nativo | Plugins terceros |
| Precio | 100% gratis (Apache 2.0) | 100% gratis (Apache 2.0) | Open-source + Cypress Cloud (pago) |
| Satisfacción (State of JS 2025) | N/A | 91% | 72% |
Velocidad: los datos concretos
Basado en benchmarks de TestDino, Checkly y Vervali Systems (Q4 2025 - Q1 2026):
| Escenario | Playwright | Cypress | Selenium |
|---|---|---|---|
| Test único de login | ~1-2 seg/acción | ~2-3 seg/acción | ~3-5 seg/acción |
| Suite de 200 tests (4 workers) | ~12 min | ~18-20 min | ~35-45 min |
| RAM por worker | ~200-300 MB | ~500 MB | ~300-500 MB |
Aviso metodológico: El gap entre Cypress y Playwright se estrecha en suites largas porque el startup penalty de Cypress se amortiza. Evalúa siempre con una suite realista de 50+ tests, no con tests individuales.
¿Cuándo usar cada herramienta?
Cuándo Selenium sigue siendo la mejor opción
- Proyectos enterprise con Java como lenguaje principal: stacks bancarios, aseguradoras, administración pública. Si el equipo usa Java y el CI/CD ya está con Maven + Jenkins + Selenium Grid, reemplazarlo tiene un coste sin beneficio proporcional inmediato.
- Herencia de infraestructura ya amortizada: si tienes 500+ tests estables corriendo bien, no los rompas sin razón.
- Testing en browsers legacy: Internet Explorer (sí, todavía en algunos proyectos de administración española), Safari real en dispositivos Apple físicos.
- Equipos multi-lenguaje: Ruby, Python legacy, Kotlin. Selenium es el único que soporta todos estos lenguajes de forma madura.
Cuándo Playwright es la elección obvia
- Proyectos nuevos sin legacy: si empiezas desde cero en 2026, Playwright. Sin discusión.
- Apps modernas (SPAs, React, Vue, Angular): su arquitectura CDP fue diseñada para renderizado JavaScript pesado y routing del lado del cliente.
- Testing cross-browser donde Safari importa: SaaS para mercado español o europeo donde Safari tiene 15-25% de cuota. Playwright con WebKit bundled te permite correr tests en CI sin Mac.
- Equipos con Python o C# que no quieren JavaScript: soporte completo y sin limitaciones en ambos lenguajes.
- Presupuesto limitado para herramientas: 100% gratuito incluyendo paralelización. No hay tier de pago.
Cuándo tiene sentido Cypress sobre Playwright
- Equipos frontend-first que viven en el navegador: el Time-Travel Debugger de Cypress —retroceder paso a paso viendo el estado del DOM— sigue siendo incomparable para debugging visual.
- Proyectos que ya usan Cypress y no tienen problemas: no migres por moda. Si los tests son estables y el equipo está cómodo, quédate.
- Component Testing con React/Vue: la DX de Cypress Component Testing es excelente para devs que trabajan con componentes aislados.
Migración de Selenium a Playwright: coste real y estrategia
Señales de que ES el momento de migrar
- Los tests tardan más de 30 minutos en CI/CD y está ralentizando el delivery.
- La tasa de flakiness supera el 10% y el equipo pierde tiempo investigando falsos positivos.
- Necesitas soporte real de Safari/WebKit.
- Estás contratando QA engineers nuevos y todos piden Playwright.
- Tu stack migró de aplicación server-side a SPA moderna.
Señales de que NO es el momento
- Tienes una suite de 1.000+ tests estables corriendo en menos de 20 minutos.
- Tu equipo usa Java y no hay apetito para TypeScript/JavaScript.
- El proyecto tiene 6 meses o menos de vida útil.
Coste estimado de migración
| Tamaño de suite | Tiempo estimado | Riesgo |
|---|---|---|
| <50 tests | 1-2 semanas (1 QA senior) | Bajo |
| 50-200 tests | 3-6 semanas (1-2 QAs) | Medio |
| 200-500 tests | 2-4 meses (equipo de 3) | Medio-alto |
| 500+ tests | 6+ meses (equipo dedicado) | Alto |
Caso real documentado (Autonoma AI, 2025): Suite migrada de Selenium a Playwright. Setup: 3 días. Resultado: tiempo de ejecución de 45 min → 12 min.
Estrategia de coexistencia durante la migración
El enfoque más seguro es la migración por capas:
- Semanas 1-2: Configura Playwright en paralelo. Tests nuevos directamente en Playwright. No toques los Selenium existentes.
- Mes 1-2: Migra los tests más frágiles de Selenium primero (los que más fallan dan más valor).
- Mes 2-3: Migra por módulos funcionales completos. Mantén cobertura en ambos hasta que el módulo esté 100% migrado.
- Fase final: Depreca Selenium. Elimina la dependencia.
Aviso importante: Si tu stack usa Java, NO migres a Cypress. Cypress es solo JavaScript/TypeScript. Playwright con Java es la ruta de menor fricción desde Selenium.
El mismo test en los tres frameworks
Escenario: login con usuario y contraseña, verificación de elemento en pantalla.
Playwright (TypeScript)
import { test, expect } from '@playwright/test';
test.describe('Login funcional', () => {
test('El usuario puede iniciar sesión y ver el dashboard', async ({ page }) => {
await page.goto('https://app.ejemplo.com/login');
await page.getByLabel('Email').fill('usuario@ejemplo.com');
await page.getByLabel('Contraseña').fill('miPassword123');
await page.getByRole('button', { name: 'Iniciar sesión' }).click();
await expect(page.getByRole('heading', { name: 'Bienvenido al Dashboard' }))
.toBeVisible();
await expect(page.getByTestId('user-menu')).toBeVisible();
});
test('Muestra error con credenciales incorrectas', async ({ page }) => {
await page.goto('https://app.ejemplo.com/login');
await page.getByLabel('Email').fill('usuario@ejemplo.com');
await page.getByLabel('Contraseña').fill('contrasenaMal');
await page.getByRole('button', { name: 'Iniciar sesión' }).click();
await expect(page.getByRole('alert')).toContainText('Credenciales incorrectas');
});
});
Clave: Cero waits explícitos. Auto-wait integrado. Si el test falla: screenshot, vídeo y trace generados automáticamente.
Cypress (TypeScript)
describe('Login funcional', () => {
it('El usuario puede iniciar sesión y ver el dashboard', () => {
cy.visit('/login');
cy.get('[data-cy="email-input"]').type('usuario@ejemplo.com');
cy.get('[data-cy="password-input"]').type('miPassword123');
cy.get('[data-cy="submit-button"]').click();
cy.url().should('include', '/dashboard');
cy.get('h1').should('contain.text', 'Bienvenido al Dashboard');
cy.get('[data-cy="user-menu"]').should('be.visible');
});
it('Muestra error con credenciales incorrectas', () => {
cy.visit('/login');
cy.get('[data-cy="email-input"]').type('usuario@ejemplo.com');
cy.get('[data-cy="password-input"]').type('contrasenaMal');
cy.get('[data-cy="submit-button"]').click();
cy.get('[role="alert"]').should('contain.text', 'Credenciales incorrectas');
});
});
Clave: Sintaxis de cadenas, no async/await real. Los should() reintentan automáticamente hasta timeout. El Time-Travel Debugger te muestra el estado del DOM en cada paso.
Selenium (Java + TestNG)
import org.openqa.selenium.*;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.support.ui.*;
import org.testng.Assert;
import org.testng.annotations.*;
import java.time.Duration;
public class LoginTest {
private WebDriver driver;
private WebDriverWait wait;
@BeforeMethod
public void setUp() {
driver = new ChromeDriver(); // Selenium Manager gestiona el driver automáticamente
wait = new WebDriverWait(driver, Duration.ofSeconds(10));
driver.manage().window().maximize();
}
@Test
public void testLoginExitoso() {
driver.get("https://app.ejemplo.com/login");
WebElement email = wait.until(
ExpectedConditions.visibilityOfElementLocated(
By.cssSelector("[data-testid='email-input']")
)
);
email.sendKeys("usuario@ejemplo.com");
driver.findElement(By.cssSelector("[data-testid='password-input']"))
.sendKeys("miPassword123");
driver.findElement(By.cssSelector("[data-testid='submit-button']")).click();
WebElement heading = wait.until(
ExpectedConditions.visibilityOfElementLocated(By.tagName("h1"))
);
Assert.assertTrue(heading.getText().contains("Bienvenido al Dashboard"));
}
@AfterMethod
public void tearDown() {
if (driver != null) driver.quit();
}
}
Clave: Requiere WebDriverWait explícito para cada elemento crítico. ~60 líneas vs ~20 de Playwright para el mismo test. Más verboso, pero familiar para equipos Java.
Mercado laboral QA en España: salarios y demanda (2026)
| Nivel | Herramienta | Rango salarial anual |
|---|---|---|
| Junior (0-2 años) | Cualquiera | 22.000 - 28.000 € b/a |
| Mid (2-4 años) | Selenium/Java | 28.000 - 38.000 € b/a |
| Mid (2-4 años) | Playwright/TypeScript | 32.000 - 42.000 € b/a |
| Senior (5+ años) | Selenium/Java | 38.000 - 50.000 € b/a |
| Senior (5+ años) | Playwright/TypeScript | 42.000 - 55.000 € b/a |
| Lead/Principal | Stack moderno | 50.000 - 70.000 € b/a |
Fuente: Indeed España (feb 2026, 70 salarios verificados), Jooble, Tecnoempleo. Media general QA Automation: ~43.686 € b/a.
Patrón observado en el mercado español:
- Las ofertas junior/mid (2-4 años) siguen pidiendo Selenium + Java + Cucumber en su mayoría.
- Las ofertas senior (5+ años) o en empresas de producto piden TypeScript + Playwright.
- Las consultoras (Indra, Capgemini, Sopra Steria, Accenture) —la mayor fuente de empleo QA en España— siguen orientadas a Selenium por sus clientes enterprise.
- Las fintech y startups tech contratan más Playwright.
Recomendación final según tu perfil
¿Eres junior sin experiencia previa?
Aprende Playwright con TypeScript. Es la habilidad con más proyección en 2026. Abre puertas en startups, scale-ups y empresas de producto. El mercado lo pide y los salarios son superiores. Empieza con el curso oficial de Playwright (gratuito) y construye un portfolio en GitHub.
¿Eres mid con Selenium/Java en consultoría o banca?
Mantén Selenium como tu core y aprende Playwright en paralelo (Python o TypeScript). Cuando tu próximo proyecto sea un stack moderno, ya estarás listo. No tires lo que tienes: Selenium paga bien en el mercado español de 2026.
¿Eres mid con Cypress y tu equipo está contento?
Quédate con Cypress si no tienes limitaciones concretas. Evalúa Playwright solo si necesitas Safari real, paralelización gratuita o lenguajes distintos a JS/TS.
¿Eres lead QA evaluando herramientas para un proyecto nuevo?
Playwright, sin duda, a menos que tu stack sea Java-only. El ROI en CI/CD es medible: la paralelización gratuita puede significar €0 vs €3.000-10.000 anuales en Cypress Cloud para un equipo mid-size. La curva de aprendizaje del equipo se amortiza en 4-6 semanas.
La perspectiva larga: En 5 años, Playwright habrá desplazado a Selenium como herramienta estándar de la misma forma en que Selenium desplazó a QTP/UFT. No porque Selenium muera, sino porque los proyectos nuevos no lo elegirán. Si eres junior hoy, aprender Playwright es apostar por donde va el mercado, no donde está. Pero si el 80% de las ofertas de tu ciudad son en banca con Selenium/Java, aprende Selenium primero. El mejor framework es el que te da trabajo.
¿Quieres practicar lo que has leído?
La teoría está bien, pero lo que diferencia a un QA tester en el mercado laboral es el portfolio demostrable. En la Academia Arkeonix tienes exámenes de práctica tipo test organizados por categorías: fundamentos de testing, automatización, metodologías ágiles y más.
Si estás preparando el ISTQB Foundation o simplemente quieres asentar los conceptos antes de tu próxima entrevista, es el complemento perfecto a este artículo.
