Comparación de frameworks · 2026

Cypress vs Selenium

Cypress y Selenium adoptan enfoques opuestos para las pruebas de navegador: uno se ejecuta dentro del navegador y el otro lo controla desde fuera. Esta guía los compara frente a frente en arquitectura, idiomas, cobertura de navegadores, paralelización y depuración, con ejemplos de código y una conclusión que podrás poner en práctica en cinco minutos.

Navegadores y dispositivos
6100+
Paralelismo en la nube
100×
Acuerdo de nivel de servicio (SLA) de tiempo de actividad
99.99%

Confiado por estas compañías

Respuesta en 30 segundos

¿Cuál deberías elegir?

Cypress Elige Cypress si…

Tu equipo escribe en JavaScript o TypeScript, pruebas una aplicación web moderna en Chrome, Edge o Firefox, y quieres la mejor experiencia para el desarrollador con reintentos integrados, depuración con viaje en el tiempo y un ejecutor de pruebas incluido.

Selenium Elige Selenium si…

Tu equipo escribe en Java, C# o Ruby, necesitas compatibilidad con navegadores antiguos (Internet Explorer, Safari), dispositivos móviles reales mediante Appium, o flujos con múltiples pestañas y entre orígenes que Cypress no puede gestionar.

Elige ambos si…

Quieres Cypress para pruebas rápidas de componentes y de frontend, y Selenium para una amplia cobertura entre navegadores y en dispositivos móviles. TestingBot ejecuta ambos en la misma cuadrícula, en paralelo, en un solo panel de control.

Contexto

¿Qué son Cypress y Selenium?

Dos frameworks, dos arquitecturas. El mismo objetivo: controlar un navegador para automatizar las pruebas de extremo a extremo.

Cypress

Cypress

Publicado en 2017 · Cypress.io · MIT

Cypress es un framework de pruebas de extremo a extremo en JavaScript que ejecuta tus pruebas dentro del navegador, en el mismo bucle de ejecución que tu aplicación. Esa arquitectura le da acceso directo al DOM, espera automática e instantáneas de viaje en el tiempo de forma predeterminada.

Como vive en el navegador, Cypress ofrece una experiencia para el desarrollador excelente: un ejecutor de pruebas integrado, recargas en tiempo real y un depurador visual. La misma arquitectura también lo limita a JavaScript y TypeScript, a un conjunto fijo de navegadores y a flujos de una sola pestaña.

  • Solo JavaScript y TypeScript
  • Reintentos automáticos, depuración con viaje en el tiempo, cy.intercept
  • Chrome, Edge, Firefox, Electron · sin IE / Safari
Selenium

Selenium

Publicado en 2004 · Código abierto · Apache 2.0

Selenium es el framework de automatización de navegadores original y la base del estándar W3C WebDriver. Selenium WebDriver controla cualquier navegador desde fuera mediante un controlador proporcionado por el fabricante (chromedriver, geckodriver, safaridriver, edgedriver) utilizando el mismo protocolo de comunicación.

Veinte años de madurez del ecosistema se traducen en enlaces para todos los lenguajes principales, una profunda integración con el IDE, patrones de Page Object consolidados y pruebas reales en dispositivos móviles mediante Appium, que se basa en el mismo protocolo.

  • Java / Python / C# / Ruby / JavaScript / Kotlin
  • Estándar W3C WebDriver, funciona con todos los navegadores
  • Chrome, Firefox, Safari, Edge, IE 11 · dispositivos móviles reales mediante Appium
Cara a cara

Cypress vs Selenium: comparación lado a lado

En todas las dimensiones que importan para seleccionar, migrar o ejecutar ambos en CI.

Cypress versus Selenium feature comparison
Dimensión Cypress Selenium
First release 2017 2004
Maintained by Cypress.io Open-source community + W3C
Languages JavaScript / TypeScript only Java, Python, C#, Ruby, JS, Kotlin
Architecture Runs inside the browser Drives the browser via WebDriver
Browsers Chrome, Edge, Firefox, Electron Chrome, Firefox, Safari, Edge, IE 11
Mobile testing Viewport emulation only Real iOS + Android via Appium
Auto-waiting Built-in retries Manual waits or WebDriverWait
Network stubbing First-class (cy.intercept) BiDi (Selenium 4) or proxy
Multiple tabs / windows Not supported Window switching API
Cross-origin cy.origin() (constrained) Native
Test runner Built in Bring your own (JUnit, pytest, Mocha…)
Debugging Time-travel snapshots + runner IDE + driver logs
Parallel execution Cypress Cloud (paid) or a grid Selenium Grid
Developer experience Real-time reload, in-browser Functional, IDE-based
Ecosystem maturity Growing fast since 2017 20 years of integrations
Free for open source on TestingBot

Las notas sobre funcionalidades reflejan Cypress 13.x y Selenium 4.x a fecha de 2026. Ambos frameworks se ejecutan en la nube de TestingBot, Cypress mediante el testingbot-cypress-cli y Selenium mediante el hub de WebDriver.

La misma prueba en ambos

Iniciar sesión, afirmar el resultado

Un flujo de inicio de sesión con reintentos integrados (Cypress) frente a una espera explícita (Selenium). Ambos se ejecutan en la misma cuadrícula de TestingBot.

Cypress + TypeScript login.cy.ts
// run via: testingbot-cypress run
describe('login', () => {
  it('redirects to the dashboard', () => {
    cy.visit('https://app.example.com/login');

    // auto-retries until actionable
    cy.get('#username').type('jane@example.com');
    cy.get('#password').type('••••••••');
    cy.contains('button', 'Sign in').click();

    cy.url().should('include', '/dashboard');
    cy.contains('h1', /welcome, jane/i).should('be.visible');
  });
});
Selenium + Python test_login.py
# Driver points at TestingBot remote URL
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

def test_login_redirects_to_dashboard(driver):
    driver.get('https://app.example.com/login')

    driver.find_element(By.NAME, 'username').send_keys('jane@example.com')
    driver.find_element(By.NAME, 'password').send_keys('••••••••')
    driver.find_element(By.CSS_SELECTOR, 'button[type=submit]').click()

    # explicit wait
    WebDriverWait(driver, 10).until(EC.url_contains('/dashboard'))
    welcome = driver.find_element(By.TAG_NAME, 'h1')
    assert 'Welcome, Jane' in welcome.text

La especificación de Cypress se ejecuta mediante el testingbot-cypress-cli; la prueba de Selenium se conecta al hub de WebDriver. Ambos aparecen en el mismo panel de control de TestingBot.

Matriz de decisión

Cuándo elegir cuál

Elige Cypress cuando

  • Tu pila tecnológica se basa principalmente en JavaScript o TypeScript y quieres que el ejecutor de pruebas, las aserciones y los reintentos vengan incluidos con el framework.
  • Estás probando una aplicación web moderna en Chrome, Edge o Firefox, sin requisitos de Internet Explorer ni Safari.
  • Valoras la experiencia para el desarrollador: depuración con viaje en el tiempo, recargas en tiempo real e instantáneas de fallos legibles.
  • Quieres una simulación de red de primer nivel con cy.intercept, sin tener que añadir un proxy.
  • Tus flujos se mantienen dentro de una sola pestaña y, en su mayoría, de un solo origen (cy.origin ayuda, dentro de ciertos límites).
Ejecuta Cypress en TestingBot

Elige Selenium cuando

  • Tu equipo escribe en Java, C#, Ruby o Python y quieres paridad total de enlaces, no una API que prioriza JavaScript.
  • Necesitas realizar pruebas en Internet Explorer 11, Safari o compilaciones de navegador que Cypress no admite.
  • Pruebas en dispositivos iOS y Android reales, donde Appium reutiliza el protocolo WebDriver sobre el que se construye Selenium.
  • Tus pruebas abren varias pestañas o ventanas, o cruzan varios orígenes, algo que Cypress gestiona solo parcialmente.
  • Tienes una biblioteca de Page Object consolidada o un framework BDD (Cucumber, SpecFlow) que no quieres reescribir.
Ejecuta Selenium en TestingBot
TestingBot admite ambos

Deja de elegir, ejecuta ambos en la misma cuadrícula

Ejecuta Cypress mediante el testingbot-cypress-cli y apunta Selenium al hub de WebDriver. Tus pruebas comparten los mismos navegadores y dispositivos 6100+, el mismo panel de control, las mismas ranuras paralelas y la misma residencia de datos en la UE, sin necesidad de una suscripción a Cypress Cloud.

  • Paralelización de Cypress sin un plan de Cypress Cloud
  • Historial de pruebas lado a lado para ambos frameworks
  • Gratuito para código abierto, ambos frameworks
testingbot.com / run both
// Cypress
$ npm i -D testingbot-cypress-cli
$ testingbot-cypress run # reads testingbot.json
# Selenium
webdriver.Remote(
command_executor='https://hub.testingbot.com/wd/hub'
)
Preguntas frecuentes

Preguntas frecuentes

Las preguntas que se hacen los equipos antes de elegir, o de migrar entre, estos frameworks.

¿Es Cypress mejor que Selenium?

Ninguno es universalmente mejor; se adaptan a equipos diferentes. Cypress gana en experiencia para el desarrollador en equipos de JavaScript y TypeScript que prueban aplicaciones web modernas: reintentos integrados, depuración con viaje en el tiempo y un ejecutor de pruebas incluido. Selenium gana en amplitud: más idiomas, todos los navegadores incluyendo Internet Explorer y Safari, dispositivos móviles reales mediante Appium, y flujos con múltiples pestañas y entre orígenes. Elige Cypress por su ergonomía dentro de sus límites; elige Selenium por su cobertura y flexibilidad.

¿Debería migrar de Selenium a Cypress?

Solo si tus necesidades encajan dentro de los límites de Cypress. Si tu suite está basada en JavaScript, apunta a Chrome, Edge o Firefox, y se mantiene dentro de una sola pestaña, los reintentos y la depuración de Cypress a menudo justifican el cambio. Si dependes de Java, C# o Ruby, pruebas en Internet Explorer o Safari, controlas dispositivos móviles reales, o necesitas flujos con múltiples pestañas y entre orígenes, migrar te costará capacidades. Muchos equipos conservan ambos: Cypress para las pruebas de frontend y Selenium para una amplia cobertura entre navegadores y en dispositivos móviles.

¿Cypress admite todos los navegadores que admite Selenium?

No. Cypress se ejecuta en navegadores basados en Chromium (Chrome, Edge, Electron) y Firefox, con compatibilidad experimental con WebKit. No puede controlar Internet Explorer ni Safari real. Selenium controla los binarios reales del navegador mediante controladores del fabricante, incluyendo Internet Explorer 11 y Safari. Si necesitas cobertura de IE o Safari, Selenium es la única opción de las dos.

¿Puede Cypress probar aplicaciones móviles?

No de forma nativa. Cypress ofrece el redimensionamiento de la ventana gráfica para emular una pantalla móvil, pero no puede controlar aplicaciones nativas de iOS o Android. Para realizar pruebas móviles reales necesitas Appium, XCUITest, Espresso o Maestro. Appium reutiliza el protocolo WebDriver sobre el que se construye Selenium. TestingBot ejecuta todas estas herramientas en dispositivos iOS y Android reales.

¿Necesito Cypress Cloud para ejecutar Cypress en paralelo?

No. La paralelización y la grabación propias de Cypress se ejecutan mediante Cypress Cloud, una suscripción de pago. TestingBot es una alternativa: el testingbot-cypress-cli comprime tus especificaciones, las sube y las ejecuta en paralelo en Chrome, Edge y Firefox en la cuadrícula en la nube, con registros en directo y vídeo, y sin un plan de Cypress Cloud. Tú estableces el número de ejecuciones paralelas en testingbot.json.

¿Pueden Cypress y Selenium compartir el mismo pipeline de CI?

Sí. Ambos se ejecutan en CI/CD e informan de los resultados en el mismo lugar de TestingBot. Una configuración habitual ejecuta Cypress para las especificaciones rápidas de frontend y Selenium para una amplia cobertura entre navegadores y en dispositivos móviles en el mismo pipeline, ambos apuntados a la cuadrícula de TestingBot con las mismas credenciales y el mismo nombre de compilación.

¿Puedo ejecutar Cypress y Selenium en TestingBot?

Sí, ambos se ejecutan en la misma nube de TestingBot. Cypress se ejecuta mediante el paquete npm testingbot-cypress-cli, configurado con un archivo testingbot.json e iniciado con testingbot-cypress run. Selenium se conecta a https://hub.testingbot.com/wd/hub mediante webdriver.Remote. Las pruebas de ambos aparecen en el mismo panel de control, comparten ranuras paralelas y se benefician de la misma residencia de datos en la UE, grabación de vídeo e integraciones de CI/CD. Ambos son gratuitos para proyectos de código abierto.

¿Quieres profundizar en el tema? Consulta las páginas dedicadas a Cypress y Selenium.

Regístrese para obtener una prueba gratuita

Ejecuta Cypress, Selenium o ambos en la nube de TestingBot. No se necesita ninguna suscripción a Cypress Cloud.

Prueba gratis