Framework-Vergleich · 2026

Cypress vs Selenium

Cypress und Selenium verfolgen gegensätzliche Ansätze beim Browsertesten: das eine läuft innerhalb des Browsers, das andere steuert ihn von außen. Dieser Leitfaden vergleicht sie direkt anhand von Architektur, Sprachen, Browserabdeckung, Parallelisierung und Debugging, mit Codebeispielen und einer Entscheidung, die Sie innerhalb von fünf Minuten umsetzen können.

Browser und Geräte
6100+
Cloud-Parallelität
100×
Verfügbarkeits-SLA
99.99%

Von diesen Unternehmen vertraut

30-Sekunden-Antwort

Welches sollten Sie wählen?

Cypress Wählen Sie Cypress, wenn…

Ihr Team schreibt JavaScript oder TypeScript, Sie testen eine moderne Webanwendung auf Chrome, Edge oder Firefox und Sie wünschen sich die beste Entwicklererfahrung mit integrierten Wiederholungen, Time-Travel-Debugging und einem mitgelieferten Test-Runner.

Selenium Wählen Sie Selenium, wenn…

Ihr Team schreibt Java, C# oder Ruby, Sie benötigen Unterstützung für ältere Browser (Internet Explorer, Safari), echte mobile Geräte über Appium oder Multi-Tab- und Cross-Origin-Flows, die Cypress nicht bewältigen kann.

Wählen Sie beide, wenn…

Sie möchten Cypress für schnelle Komponenten- und Frontend-Tests und Selenium für eine breite browserübergreifende und mobile Abdeckung nutzen. TestingBot führt beide auf demselben Raster aus, parallel, in einem Dashboard.

Hintergrund

Was sind Cypress und Selenium?

Zwei Frameworks, zwei Architekturen. Das gleiche Ziel: einen Browser dazu bringen, End-to-End-Tests zu automatisieren.

Cypress

Cypress

Veröffentlicht 2017 · Cypress.io · MIT

Cypress ist ein JavaScript-End-to-End-Testframework, das Ihre Tests innerhalb des Browsers ausführt, in derselben Ausführungsschleife wie Ihre Anwendung. Diese Architektur verschafft ihm direkten Zugriff auf das DOM, automatisches Warten und Time-Travel-Snapshots von Haus aus.

Da es im Browser lebt, bietet Cypress eine hervorragende Entwicklererfahrung: einen integrierten Test-Runner, Echtzeit-Reloads und einen visuellen Debugger. Dieselbe Architektur beschränkt es jedoch auf JavaScript und TypeScript, eine feste Auswahl an Browsern und Single-Tab-Flows.

  • Nur JavaScript und TypeScript
  • Automatische Wiederholungen, Time-Travel-Debugging, cy.intercept
  • Chrome, Edge, Firefox, Electron · kein IE / Safari
Selenium

Selenium

Veröffentlicht 2004 · Open Source · Apache 2.0

Selenium ist das ursprüngliche Framework zur Browserautomatisierung und die Grundlage des W3C-WebDriver-Standards. Selenium WebDriver steuert jeden Browser von außen über einen vom Hersteller bereitgestellten Treiber (chromedriver, geckodriver, safaridriver, edgedriver) mithilfe desselben Wire-Protokolls.

Zwanzig Jahre ausgereiftes Ökosystem bedeuten Bindings für alle wichtigen Programmiersprachen, tiefe IDE-Integration, ausgereifte Page-Object-Muster und echte mobile Gerätetests über Appium, das auf demselben Protokoll aufbaut.

  • Java / Python / C# / Ruby / JavaScript / Kotlin
  • W3C-WebDriver-Standard, funktioniert mit jedem Browser
  • Chrome, Firefox, Safari, Edge, IE 11 · echte mobile Geräte über Appium
Direkter Vergleich

Cypress vs Selenium: ein direkter Vergleich

Über alle Dimensionen hinweg, die für die Auswahl, Migration oder Ausführung beider in CI relevant sind.

Cypress versus Selenium feature comparison
Dimension 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

Die Funktionsangaben beziehen sich auf Cypress 13.x und Selenium 4.x mit Stand 2026. Beide Frameworks laufen in der TestingBot-Cloud, Cypress über die testingbot-cypress-cli und Selenium über den WebDriver-Hub.

Derselbe Test in beiden

Anmelden, das Ergebnis bestätigen

Ein Anmeldevorgang mit integrierten Wiederholungen (Cypress) im Vergleich zu einer expliziten Wartezeit (Selenium). Beide laufen auf demselben TestingBot-Raster.

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

Die Cypress-Spec läuft über die testingbot-cypress-cli; der Selenium-Test verbindet sich mit dem WebDriver-Hub. Beide erscheinen im selben TestingBot-Dashboard.

Entscheidungsmatrix

Wann sollte man welche Option wählen?

Wählen Sie Cypress, wenn

  • Ihr Stack ist JavaScript- oder TypeScript-first und Sie möchten, dass der Test-Runner, die Assertions und die Wiederholungen mit dem Framework ausgeliefert werden.
  • Sie testen eine moderne Webanwendung auf Chrome, Edge oder Firefox, ohne Anforderung an Internet Explorer oder Safari.
  • Sie legen Wert auf Entwicklererfahrung: Time-Travel-Debugging, Echtzeit-Reloads und lesbare Fehler-Snapshots.
  • Sie möchten erstklassiges Netzwerk-Stubbing mit cy.intercept, ohne einen Proxy aufzusetzen.
  • Ihre Flows bleiben innerhalb eines einzigen Tabs und meist eines einzigen Origins (cy.origin hilft, in Grenzen).
Cypress auf TestingBot ausführen

Wählen Sie Selenium, wenn

  • Ihr Team schreibt Java, C#, Ruby oder Python und Sie möchten vollständige Binding-Parität statt einer JavaScript-first-API.
  • Sie müssen mit Internet Explorer 11, Safari oder Browser-Builds testen, die Cypress nicht unterstützt.
  • Sie testen echte iOS- und Android-Geräte, bei denen Appium das WebDriver-Protokoll wiederverwendet, auf dem Selenium aufbaut.
  • Ihre Tests öffnen mehrere Tabs oder Fenster oder durchqueren mehrere Origins, was Cypress nur teilweise bewältigt.
  • Sie verfügen über eine ausgereifte Page-Object-Bibliothek oder ein BDD-Framework (Cucumber, SpecFlow), das Sie nicht neu schreiben möchten.
Selenium auf TestingBot ausführen
TestingBot unterstützt beides

Hören Sie auf zu wählen, führen Sie beide auf demselben Raster aus

Führen Sie Cypress über die testingbot-cypress-cli aus und richten Sie Selenium auf den WebDriver-Hub aus. Ihre Tests teilen sich dieselben 6100+ Browser und Geräte, dasselbe Dashboard, dieselben parallelen Slots und denselben EU-Datenspeicherort, ohne erforderliches Cypress-Cloud-Abonnement.

  • Cypress-Parallelisierung ohne Cypress-Cloud-Plan
  • Vergleich der Testhistorie beider Frameworks nebeneinander
  • Kostenlos für Open Source, beide 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'
)
FAQ

Häufig gestellte Fragen

Die Fragen, die sich Teams stellen, bevor sie sich für eines dieser Frameworks entscheiden oder zwischen ihnen wechseln.

Ist Cypress besser als Selenium?

Keines ist universell besser; sie passen zu unterschiedlichen Teams. Cypress punktet bei der Entwicklererfahrung für JavaScript- und TypeScript-Teams, die moderne Webanwendungen testen: integrierte Wiederholungen, Time-Travel-Debugging und ein mitgelieferter Test-Runner. Selenium punktet bei der Breite: mehr Sprachen, jeder Browser einschließlich Internet Explorer und Safari, echte mobile Geräte über Appium sowie Multi-Tab- und Cross-Origin-Flows. Wählen Sie Cypress für Ergonomie innerhalb seiner Grenzen; wählen Sie Selenium für Abdeckung und Flexibilität.

Sollte ich von Selenium zu Cypress migrieren?

Nur wenn Ihre Anforderungen innerhalb der Grenzen von Cypress liegen. Wenn Ihre Suite JavaScript-basiert ist, auf Chrome, Edge oder Firefox abzielt und innerhalb eines einzigen Tabs bleibt, rechtfertigen die Wiederholungen und das Debugging von Cypress oft den Wechsel. Wenn Sie auf Java, C# oder Ruby angewiesen sind, Internet Explorer oder Safari testen, echte mobile Geräte steuern oder Multi-Tab- und Cross-Origin-Flows benötigen, kostet Sie die Migration Funktionen. Viele Teams behalten beide: Cypress für Frontend-Tests, Selenium für eine breite browserübergreifende und mobile Abdeckung.

Unterstützt Cypress alle Browser, die Selenium unterstützt?

Nein. Cypress läuft auf Chromium-basierten Browsern (Chrome, Edge, Electron) und Firefox, mit experimenteller WebKit-Unterstützung. Es kann weder Internet Explorer noch echtes Safari steuern. Selenium steuert die eigentlichen Browser-Binärdateien über Herstellertreiber, einschließlich Internet Explorer 11 und Safari. Wenn Sie eine Abdeckung von IE oder Safari benötigen, ist Selenium die einzige Option der beiden.

Kann Cypress mobile Apps testen?

Nicht nativ. Cypress bietet eine Anpassung des Viewports, um einen mobilen Bildschirm zu emulieren, kann aber keine nativen iOS- oder Android-Apps steuern. Für echte mobile Tests benötigen Sie Appium, XCUITest, Espresso oder Maestro. Appium verwendet das WebDriver-Protokoll wieder, auf dem Selenium aufbaut. TestingBot führt all diese auf echten iOS- und Android-Geräten aus.

Benötige ich Cypress Cloud, um Cypress parallel auszuführen?

Nein. Die eigene Parallelisierung und Aufzeichnung von Cypress läuft über Cypress Cloud, ein kostenpflichtiges Abonnement. TestingBot ist eine Alternative: Die testingbot-cypress-cli packt Ihre Specs, lädt sie hoch und führt sie parallel auf Chrome, Edge und Firefox im Cloud-Raster aus, mit Live-Logs und Video und ohne Cypress-Cloud-Plan. Sie legen die Anzahl der parallelen Ausführungen in testingbot.json fest.

Können Cypress und Selenium dieselbe CI-Pipeline teilen?

Ja. Beide laufen in CI/CD und melden ihre Ergebnisse an denselben Ort bei TestingBot zurück. Ein gängiges Setup führt Cypress für schnelle Frontend-Specs und Selenium für eine breite browserübergreifende und mobile Abdeckung in derselben Pipeline aus, beide auf das TestingBot-Raster ausgerichtet, mit denselben Anmeldedaten und demselben Build-Namen.

Kann ich Cypress und Selenium auf TestingBot ausführen?

Ja, beide laufen in derselben TestingBot-Cloud. Cypress läuft über das npm-Paket testingbot-cypress-cli, konfiguriert mit einer testingbot.json-Datei und gestartet mit testingbot-cypress run. Selenium verbindet sich über webdriver.Remote mit https://hub.testingbot.com/wd/hub. Tests aus beiden werden im selben Dashboard angezeigt, teilen sich parallele Slots und profitieren von derselben EU-Datenresidenz, Videoaufzeichnung und denselben CI/CD-Integrationen. Beide sind für Open-Source-Projekte kostenlos.

Sie möchten tiefer eintauchen? Dann besuchen Sie die entsprechenden Seiten zu Cypress und Selenium.

Kostenlose Anmeldung

Führen Sie Cypress, Selenium oder beides in der TestingBot-Cloud aus. Kein Cypress-Cloud-Abonnement erforderlich.

Kostenlose Testversion