🎁 Jetzt registrieren und bis zu 30 Minuten Online-KI kostenlos nutzen. Keine Kreditkarte erforderlich.

Selenium Interviewfragen und Antworten: 24 Fragen zu Waits, Locators und Frameworks

September 2, 2026
Selenium Interviewfragen mit Antworten zu Locators, Waits, flaky Tests, Page Objects, Framework-Design, parallelen Läufen und CI-Fehlern.
Selenium Interviewfragen und Antworten: 24 Fragen zu Waits, Locators und Frameworks
selenium interview questions
selenium interview questions and answers
selenium waits interview
selenium framework interview questions

Selenium-Interviews prüfen zwei Dinge: ob du stabile UI-Tests schreiben kannst (Waits, Locators, Page Objects) und ob du ein Framework entwerfen kannst, mit dem ein Team leben kann (Struktur, Daten, Reporting, Ausführung in CI). Flaky Tests sind das Thema, das am häufigsten aufkommt, weil jeder, der Selenium verwendet hat, schon damit gekämpft hat.

Unten findest du 24 Fragen mit Antworten. Die Beispiele verwenden Java- und Python-Syntax, wo Code hilft, und die Ideen gelten in jeder Sprache.

Grundlagen

1. Was ist Selenium, und was sind seine Komponenten?

Selenium ist eine Open-Source-Suite zur Automatisierung von Webbrowsern. Selenium WebDriver steuert Browser über ihre Treiber und ist der Teil, den die meisten meinen. Selenium Grid führt Tests parallel auf vielen Rechnern und Browsern aus. Selenium IDE ist eine Record-and-Playback-Erweiterung. Selenium kümmert sich nicht um Desktop-Apps oder integriertes Test-Reporting, daher kombinierst du es mit einem Test-Framework.

2. Wie funktioniert WebDriver?

Dein Test sendet Befehle über das W3C-WebDriver-Protokoll per HTTP an einen Browsertreiber wie ChromeDriver oder GeckoDriver, der den Browser steuert und Ergebnisse zurückgibt. Neuere Selenium-Versionen enthalten Selenium Manager, der den passenden Treiber findet und herunterlädt.

3. Welche Locators unterstützt Selenium, und welche bevorzugst du?

ID, Name, Klassenname, Tag-Name, Linktext, partieller Linktext, CSS-Selektor und XPath. Bevorzuge eine stabile ID oder ein dediziertes Test-Attribut wie data-testid, dann CSS. Verwende XPath, wenn du im Baum nach oben gehen oder Text abgleichen musst. Vermeide lange, positionsbasierte Pfade wie /html/body/div[3]/div[2], die brechen, wenn sich das Layout ändert.

4. Was ist der Unterschied zwischen findElement und findElements?

findElement gibt den ersten Treffer zurück und wirft NoSuchElementException, wenn es keinen gibt. findElements gibt eine Liste zurück, die leer ist, wenn nichts passt, daher ist sie nützlich, um zu prüfen, dass etwas nicht vorhanden ist.

5. Was ist der Unterschied zwischen driver.close() und driver.quit()?

close() schließt das aktuelle Fenster. quit() schließt alle Fenster und beendet die Session. Verwende quit() im Teardown, damit keine Browserprozesse zurückbleiben.

Waits und flaky Tests

6. Welche Arten von Waits gibt es?

WaitFunktionsweise
ImplizitEin globales Timeout für das Finden von Elementen
ExplizitWartet auf eine bestimmte Bedingung bei einem bestimmten Element
FluentEin expliziter Wait mit benutzerdefiniertem Polling-Intervall und ignorierten Exceptions
WebDriverWait wait = new WebDriverWait(driver, Duration.ofSeconds(10));
WebElement button = wait.until(ExpectedConditions.elementToBeClickable(By.id("submit")));

Bevorzuge explizite Waits. Das Mischen von impliziten und expliziten Waits kann unvorhersehbare Verzögerungen verursachen.

7. Warum solltest du Thread.sleep nicht verwenden?

Es wartet immer die volle Zeit, verlangsamt die Suite, und ist an einem langsamen Tag trotzdem zu kurz. Ein bedingungsbasierter Wait läuft weiter, sobald die Bedingung erfüllt ist, und schlägt andernfalls mit einer klaren Meldung fehl.

8. Was verursacht flaky Tests, und wie behebst du sie?

Häufige Ursachen und Lösungen:

  • Timing: Verwende explizite Waits für die genaue Bedingung, nicht Sleeps.
  • Gemeinsame oder übrig gebliebene Daten: Erstelle Testdaten pro Test und räume sie auf.
  • Abhängigkeit zwischen Tests: Mache jeden Test unabhängig und einzeln ausführbar.
  • Instabile Locators: Füge Test-IDs hinzu und vermeide positionsbasierte Pfade.
  • Animationen und Overlays: Warte, bis das Overlay verschwindet, oder deaktiviere Animationen in der Testumgebung.
  • Umgebungsprobleme: Stabilisiere die Testumgebung, und prüfe Netzwerk- und Drittanbieter-Aufrufe.
  • Parallele Interferenzen: Isoliere den Zustand pro Thread.

Quarantäne einen flaky Test, damit er nicht alle blockiert, und behebe ihn dann richtig. Füge nicht einfach überall Retries hinzu, da das echte Bugs verdeckt.

9. Was ist StaleElementReferenceException?

Das Element, das du gefunden hast, ist nicht mehr an die Seite angehängt, meist weil die Seite neu gerendert wurde. Behebe das, indem du das Element kurz vor der Verwendung erneut lokalisierst oder auf das neue Element wartest, anstatt Referenzen lange zu halten.

10. Wie gehst du mit Elementen um, die nicht klickbar sind (ElementClickInterceptedException)?

Etwas verdeckt das Element, etwa ein Banner oder ein Lade-Overlay. Warte, bis das Overlay verschwindet, scrolle das Element in den sichtbaren Bereich oder schließe das Banner. Einen JavaScript-Klick zu verwenden, sollte der letzte Ausweg sein, weil ein echter Nutzer nicht klicken könnte und der Test einen echten Bug verbergen würde.

Umgang mit Seitenfunktionen

  • Dropdowns: die Select-Klasse für Standard-Select-Elemente und klickbasierte Schritte für benutzerdefinierte Dropdowns.
  • Alerts: driver.switchTo().alert() zum Bestätigen, Verwerfen oder Auslesen.
  • Frames: switchTo().frame(...) und zurück zu defaultContent().
  • Fenster und Tabs: Window-Handles holen, zum neuen wechseln und wieder zurückwechseln.

12. Wie gehst du mit Datei-Uploads und -Downloads um?

Für Uploads schickst du den Dateipfad mit sendKeys an das Element input type="file". Für Downloads legst du das Download-Verzeichnis des Browsers in den Optionen fest, wartest, bis die Datei erscheint, und prüfst dann ihren Namen und Inhalt.

13. Wie führst du JavaScript in Selenium aus?

Über JavascriptExecutor.executeScript, zum Beispiel zum Scrollen oder um einen Wert auszulesen, den die API nicht erreicht. Setze es sparsam ein.

14. Was ist der Headless-Modus?

Der Browser läuft ohne sichtbares Fenster, was schneller ist und auf Servern und in der CI funktioniert. Prüfe beim Debuggen mit einem sichtbaren Lauf gegen und achte auf die Viewport-Größe, weil Layouts abweichen können.

Framework-Design

15. Was ist das Page Object Model?

Jede Seite oder Komponente ist eine Klasse, die ihre Locators und die Aktionen darauf enthält. Tests rufen Methoden wie loginPage.loginAs(user) auf und fassen Locators nicht direkt an. Wenn sich die UI ändert, korrigierst du eine Klasse statt vieler Tests.

class LoginPage:
    def __init__(self, driver):
        self.driver = driver
    def login_as(self, user, password):
        self.driver.find_element(By.ID, "user").send_keys(user)
        self.driver.find_element(By.ID, "pass").send_keys(password)
        self.driver.find_element(By.ID, "submit").click()

16. Was enthält ein gutes Test-Framework?

Einen Test-Runner (TestNG, JUnit, pytest), Page Objects, eine Driver-Factory für verschiedene Browser, Konfiguration pro Umgebung, Testdatenverwaltung, Hilfsfunktionen für Waits, Reporting, Logging, Screenshots bei Fehlern und CI-Integration.

17. Wie verwaltest du Testdaten?

Erstelle die Daten, die ein Test braucht, zu Beginn über eine API oder ein Datenbank-Setup, nicht über die UI, und räume sie danach wieder auf. Halte Daten in Dateien oder Buildern fest, nicht hartcodiert in Tests, und vermeide Tests, die auf Daten angewiesen sind, die ein anderer Test hinterlassen hat.

18. Wie führst du Tests parallel aus?

Nutze die Parallel-Funktion des Runners, gib jedem Thread seinen eigenen Driver (zum Beispiel mit ThreadLocal), halte Tests unabhängig und fahre auf Selenium Grid oder einem Cloud-Browser-Dienst, um über Browser hinweg zu skalieren.

19. Was ist Selenium Grid?

Ein System mit einem Hub und Nodes (oder einem verteilten Setup in Grid 4), das Tests parallel auf verschiedenen Browsern und Betriebssystemen ausführt. Es verkürzt die Gesamtlaufzeit und lässt dich mehr Browser abdecken.

Strategie und Szenarien

20. Was solltest du mit Selenium automatisieren und was nicht?

Automatisiere stabile, wertvolle, wiederholbare Abläufe wie Login, Checkout und kritische Regressionspfade. Automatisiere keine einmaligen Prüfungen, häufig wechselnde UI oder Dinge, die besser weiter unten getestet werden. Eine gesunde Suite hat viele Unit- und API-Tests, weniger UI-Tests und eine kleine Menge an End-to-End-Abläufen.

21. Wie testest du eine Anwendung mit Captcha oder Zwei-Faktor-Login?

Versuche nicht, sie im Test zu umgehen. Nutze eine Testumgebung, in der sie deaktiviert sind, ein Testkonto mit festem Code oder Bypass-Flag oder eine Test-API, um eine Session zu erzeugen.

22. Ein Test läuft lokal durch, schlägt aber in der CI fehl. Was prüfst du?

Browser- und Driver-Versionen, Bildschirmgröße und Headless-Unterschiede, Timing auf langsameren Maschinen, Umgebungsdaten, Netzwerkzugriff, Zeitzonen und Locale sowie parallele Läufe, die sich Daten teilen. Erfasse bei Fehlern Screenshots, Seitenquelltext und Logs zum Vergleich.

23. Wie entscheidest du zwischen Selenium, Playwright und Cypress?

Selenium unterstützt viele Sprachen und Browser und hat ein riesiges Ökosystem. Playwright und Cypress bieten integrierte Waits, einfacheres Setup und gute Debugging-Tools und passen möglicherweise besser zu neuen Projekten. Die richtige Wahl hängt von Sprache, Browser-Anforderungen und Team-Skills ab. Nenne deine Gründe, nicht eine Markenpräferenz.

24. Führe mich durch die Automatisierung eines Checkout-Ablaufs.

„Ich würde einen Nutzer und ein Produkt über die API anlegen und mich dann über die UI einloggen oder eine Session wiederverwenden. Ein Page Object pro Schritt: Suche, Produkt, Warenkorb und Zahlung. Ich würde eine Test-Zahlungsmethode verwenden, auf das Bestätigungselement warten, die Bestellung über die UI und die API verifizieren und bei Fehlern einen Screenshot machen. Der Test würde seine Bestellung aufräumen, parallel laufen und in der Pipeline bei jedem Merge laufen."

Wie du dich vorbereitest

Schreibe eine kleine Suite für eine Demo-Seite mit Page Objects, expliziten Waits, Screenshots bei Fehlern und einem CI-Lauf. Übe zu erklären, wie du einen flaky Test behoben hast, mit Ursache und Änderung. Sei bereit, einen Locator und einen Wait live zu coden. Sieh dir unseren Leitfaden zum Coding-Interview-Assistenten für Übungsroutinen an und den Leitfaden zum Behavioral Interview für die Soft-Skills-Runde.

Sprich deine Antworten laut aus und lies ein Transkript für vage Stellen wie „füg einfach einen Wait hinzu". Befolge die Regeln des Arbeitgebers zu KI-Tools in jedem Live-Interview.

Üben Sie Selenium Interviewantworten mit YesToTheOffer

Führen Sie ein Mock-Technikinterview durch, erklären Sie Ihr Framework laut und überprüfen Sie anschließend Ihr Transkript. 30 kostenlose Minuten, kein Abonnement.

iOS & Android — Demnächst
Preise ansehen