iToverDose/Software· 25 APRIL 2026 · 00:05

Selenium mit Python: Der praktische Spickzettel für Testautomatisierung

Von der Einrichtung bis zu fortgeschrittenen Funktionen – dieser Leitfaden bietet sofort einsatzbereite Code-Snippets für die Testautomatisierung mit Selenium und Python. Ideal für QA-Ingenieure und Entwickler, die effiziente Lösungen suchen.

DEV Community5 min0 Kommentare

Die Testautomatisierung mit Selenium und Python ist ein unverzichtbares Werkzeug für QA-Teams und Entwickler, die manuelle Tests durch zuverlässige Automatisierung ersetzen möchten. Doch häufig fehlt es an klaren, praxisnahen Anleitungen, die direkt im Arbeitsalltag anwendbar sind. Dieser Leitfaden bietet einen kompakten Spickzettel mit den wichtigsten Code-Beispielen – von der Einrichtung bis zu fortgeschrittenen Techniken wie Page Object Model und CI-Integration. Alle Beispiele sind direkt kopierbar, anpassbar und skalierbar, sodass Sie sofort loslegen können.

Schnellstart: Selenium und Python einrichten

Bevor Sie mit der Testautomatisierung beginnen, müssen Sie die notwendigen Komponenten installieren und konfigurieren. Der erste Schritt besteht darin, die Python-Bibliothek Selenium zu installieren. Dies erfolgt über den Paketmanager pip:

pip install selenium

Anschließend benötigen Sie den passenden Webbrowser-Treiber für Ihr bevorzugtes Browser-System. Stellen Sie sicher, dass der Treiber im Systempfad verfügbar ist oder geben Sie den Pfad explizit an:

  • Chrome: chromedriver
  • Firefox: geckodriver
  • Edge: msedgedriver

Ein häufiger Fehler bei der Einrichtung ist das Fehlen der Treiber oder deren Inkompatibilität mit der installierten Browser-Version. Überprüfen Sie daher stets die Versionskompatibilität auf den offiziellen Projektseiten der jeweiligen Browser-Treiber.

Browser starten und steuern: Grundlagen und Headless-Modus

Nach der Einrichtung können Sie Ihren ersten Test starten, indem Sie einen Browser öffnen und eine Webseite laden. Das folgende Beispiel zeigt, wie Sie Chrome mit Selenium starten und eine URL aufrufen:

from selenium import webdriver

driver = webdriver.Chrome()
driver.get(")

Für die Integration in Continuous Integration/Continuous Deployment-Pipelines (CI/CD) empfiehlt sich die Nutzung des Headless-Modus. Dabei läuft der Browser im Hintergrund ohne grafische Oberfläche, was Ressourcen spart und die Ausführungsgeschwindigkeit erhöht. Aktivieren Sie den Headless-Modus mit den folgenden Optionen:

from selenium.webdriver.chrome.options import Options

options = Options()
options.add_argument("--headless")
options.add_argument("--window-size=1920,1080")

driver = webdriver.Chrome(options=options)

Diese Konfiguration ist besonders nützlich für automatisierte Testumgebungen, in denen keine Benutzeroberfläche erforderlich ist.

Elemente zuverlässig finden und interagieren

Ein zentraler Bestandteil der Testautomatisierung mit Selenium ist das zuverlässige Auffinden und Interagieren mit Web-Elementen. Die Wahl des richtigen Selektors ist entscheidend für die Stabilität Ihrer Tests. Selenium bietet verschiedene Methoden, um Elemente zu lokalisieren:

  • ID-Selektor (empfohlen): driver.find_element(By.ID, "submit")
  • Name-Attribut: driver.find_element(By.NAME, "email")
  • CSS-Selektor: driver.find_element(By.CSS_SELECTOR, ".login-button")
  • XPath (sparsam verwenden): driver.find_element(By.XPATH, "//button[text()='Login']")

Ein häufiges Problem sind flaky Tests, die durch instabile Selektoren verursacht werden. Achten Sie darauf, dass Ihre Selektoren auf eindeutige und stabile Attribute verweisen, um die Zuverlässigkeit Ihrer Tests zu gewährleisten.

Benutzerinteraktionen simulieren

Sobald Sie ein Element gefunden haben, können Sie verschiedene Benutzerinteraktionen simulieren:

  • Klicken: element.click()
  • Texteingabe: element.send_keys("user@test.com")
  • Textfeld leeren: element.clear()
  • Werte auslesen: element.text oder element.get_attribute("value")

Diese Methoden ermöglichen es Ihnen, Formulare auszufüllen, Schaltflächen zu betätigen und Eingabefelder zu überprüfen – alles essenzielle Schritte in der Testautomatisierung.

Warten auf Elemente: Warum Sleep eine schlechte Praxis ist

Ein häufiger Fehler in der Testautomatisierung ist die Verwendung von time.sleep(), um auf das Laden von Elementen zu warten. Diese Methode ist jedoch unzuverlässig, da sie die Ausführungszeit festlegt und nicht auf dynamische Änderungen reagiert. Besser geeignet sind explizite Wartezeiten, die auf bestimmte Bedingungen warten:

from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

wait = WebDriverWait(driver, 10)
login_btn = wait.until(
    EC.element_to_be_clickable((By.ID, "login"))
)

Selenium bietet verschiedene Wartebedingungen, darunter:

  • EC.presence_of_element_located
  • EC.visibility_of_element_located
  • EC.element_to_be_clickable

Diese Bedingungen warten aktiv darauf, dass das gewünschte Element verfügbar, sichtbar oder klickbar wird, bevor der Test fortgesetzt wird. Dadurch werden flaky Tests vermieden und die Zuverlässigkeit erhöht.

Fortgeschrittene Techniken: Formulare, Dropdowns und JavaScript

Die Testautomatisierung umfasst oft komplexe Interaktionen wie das Ausfüllen von Formularen oder das Auswählen von Dropdown-Optionen. Selenium bietet einfache Methoden, um diese Aufgaben zu bewältigen:

from selenium.webdriver.support.ui import Select

dropdown = Select(driver.find_element(By.ID, "country"))
dropdown.select_by_visible_text("Indien")

Zusätzlich können Sie JavaScript nutzen, um Scroll-Operationen durchzuführen oder Elemente zu manipulieren:

driver.execute_script("window.scrollTo(0, document.body.scrollHeight)")
driver.execute_script("arguments[0].scrollIntoView()", element)

Diese Techniken sind besonders nützlich, wenn Standardmethoden nicht ausreichen oder zusätzliche Interaktivität erforderlich ist.

Integration mit Pytest: Skalierbare Testautomatisierung

Selenium allein reicht oft nicht aus, um eine umfassende Testautomatisierung aufzubauen. Die Kombination mit dem Pytest-Framework ermöglicht es Ihnen, Tests skalierbar, lesbar und CI-kompatibel zu gestalten. Beginnen Sie mit der Installation von Pytest:

pip install pytest

Ein empfohlener Projektaufbau könnte wie folgt aussehen:

tests/
├── pages/
│   └── login_page.py
├── conftest.py
├── test_login.py
└── pytest.ini

Der conftest.py-Datei kommt dabei eine besondere Rolle zu. Sie ermöglicht die Definition von Fixtures, die den WebDriver automatisch einrichten und nach dem Test beenden – ein sauberer Ansatz im Vergleich zu manuellen setUp()- und tearDown()-Methoden.

Fixtures und Page Object Model

Ein Beispiel für einen WebDriver-Fixture in conftest.py:

import pytest
from selenium import webdriver

@pytest.fixture
def driver():
    driver = webdriver.Chrome()
    driver.maximize_window()
    yield driver
    driver.quit()

Mit diesem Fixture können Sie Tests schreiben, die automatisch den WebDriver zur Verfügung stellen. Kombiniert mit dem Page Object Model (POM) wird Ihr Testcode noch übersichtlicher und wartbarer. Ein Beispiel für eine Page-Klasse:

class LoginPage:
    def __init__(self, driver):
        self.driver = driver

    def login(self, user, pwd):
        self.driver.find_element(By.ID, "username").send_keys(user)
        self.driver.find_element(By.ID, "password").send_keys(pwd)
        self.driver.find_element(By.ID, "login").click()

Diese Struktur ermöglicht es Ihnen, Tests wie folgt zu schreiben:

def test_login_success(driver):
    page = LoginPage(driver)
    page.login("admin", "password")
    assert "Dashboard" in driver.title

Pytest-Marker und HTML-Berichte

Pytest bietet zusätzliche Funktionen wie Marker, um Tests zu kategorisieren und gezielt auszuführen. Ein Beispiel:

@pytest.mark.smoke
def test_smoke_login():
    pass

Um spezifische Tests auszuführen, nutzen Sie:

pytest -m smoke

Für eine bessere Nachverfolgbarkeit in CI-Umgebungen können HTML-Berichte generiert werden:

pip install pytest-html
pytest --html=report.html

Diese Berichte bieten eine übersichtliche Darstellung der Testergebnisse und sind besonders nützlich für die Dokumentation und Analyse von Testläufen.

Fazit: Effiziente Testautomatisierung mit Selenium und Python

Die Kombination aus Selenium und Python bietet eine leistungsstarke Lösung für die Testautomatisierung. Mit den richtigen Selektoren, expliziten Wartezeiten und einer sauberen Code-Struktur lassen sich stabile und skalierbare Tests erstellen. Die Integration mit Pytest und dem Page Object Model erhöht die Wartbarkeit und Lesbarkeit, während die Nutzung von HTML-Berichten die Nachverfolgbarkeit verbessert. Nutzen Sie diesen Leitfaden als Ausgangspunkt und passen Sie die Beispiele an Ihre spezifischen Anforderungen an – so gelingt der Einstieg in die Testautomatisierung mühelos.

KI-Zusammenfassung

Günlük test otomasyonunda en sık kullanılan Selenium + Python senaryolarını keşfedin. Kurulumdan raporlamaya kadar tüm adımları öğrenin ve projelerinizde uygulayın.

Kommentare

00
KOMMENTAR SCHREIBEN
ID #BR4PYM

0 / 1200 ZEICHEN

Menschen-Check

3 + 2 = ?

Erscheint nach redaktioneller Prüfung

Moderation · Spam-Schutz aktiv

Noch keine Kommentare. Sei der erste.