Effiziente Browser-Treiber Verwaltung mit Selenium und WebDriverManager

von Tobias Kraft

Bei der Durchführung von automatisierten Browser-Tests für Software-Applikationen ist der Einsatz von Selenium bei Software-Entwicklern weit verbreitet. Um mit dem gewünschten Browser interagieren zu können, benötigt Selenium einen Browser-Treiber. Die Version des Browser-Treibers muss zur Version des verwendeten Browsers passen.

Aktuelle Browserversionen: Wichtig, aber manchmal nervig

Browser werden aufgrund von Sicherheitslücken und Erweiterungen in der Regel automatisch über Betriebssystem-Updates aktualisiert. Für Browser wie Chrome ist auch nur die aktuellste Version verfügbar, und es kann nicht ohne Weiteres eine ältere Version genutzt werden. Damit steht man bei der Verwendung von Selenium vor der Herausforderung, dass auch die Version des Browser-Treibers ständig angepasst werden muss.

Abhängig von der Umgebung sind verschiedene Browser-Versionen im Einsatz. Werden automatisierte Tests in CI/CD-Pipelines wie GitLab ausgeführt, dann werden Tests oftmals über Docker-Images durchgeführt, die möglicherweise eine ältere Browser-Version nutzen als die auf dem Laptop des Entwicklers

In vielen Fällen wird Selenium durch Frameworks für eine einfachere Verwendung abstrahiert. Ein Beispiel hierfür ist das Geb Framework. Die Version des zu nutzenden Browser-Treibers muss hier jedoch ebenfalls definiert werden. Dies kann beispielsweise in der zugehörigen Konfigurations-Datei GebConfig.groovy von Geb erfolgen und wie folgt aussehen:

String chromeDriverVersion = "122.0.6261.94"

if (Platform.current.is(Platform.WINDOWS)) {
    currentPlatformName = Platform.WINDOWS.name()
    chromeDriverZipFileName = "win64/chromedriver-win64.zip"
    chromeDriverSubpath = "chromedriver-win64"
    chromeDriverExecFileName = "chromedriver.exe"
}

...

Wie dargestellt erfolgt in nachfolgenden Schritten die Erkennung des aktuellen Betriebssystems und der entsprechende Treiber wird aus dem Internet heruntergeladen. Solche Dateien müssen jedoch ebenfalls regelmäßig gepflegt werden, was umständlich ist und nicht selten zu unnötigen Commits führt.

Automatisches Browser-Treiber-Management mit Selenium Manager und WebDriverManager

Im Idealfall existiert eine Möglichkeit, die Version des Browsers durch ein Programm oder eine Bibliothek ermitteln zu lassen und den benötigten Treiber automatisch herunterzuladen und bereitzustellen. Mit dem Selenium Manager gibt es ein Kommandozeilenprogramm, das nach diesem Prinzip funktioniert. Nutzt man allerdings Selenium nicht direkt, sondern kapselt es durch ein darüber liegendes Framework, sind wiederum zusätzliche Software-Installationen auf allen Test-Systemen notwendig.

Läuft die Applikation und das Testing unter Java mit einem der Build-Werkzeuge Maven oder Gradle, gibt es eine weitere elegante Möglichkeit. Mit WebDriverManager steht eine Bibliothek zur Verfügung, die lediglich als Abhängigkeit im Build-Werkzeug eingebunden werden muss.

Mit dem folgenden einzeiligen Aufruf kann beispielsweise der Treiber für den Chrome-Browser zur Verfügung gestellt werden:

WebDriverManager.chromedriver().setup();

Das Herunterladen, Bereitstellen und Cachen des Treibers erfolgt automatisiert im Hintergrund. Für die gängigen Browser stehen entsprechende Initialisierungsmethoden bereit. Der Vorteil ist hier, dass keine weiteren Tools installiert und verwendet werden müssen. Es funktioniert "OutOfTheBox" nach dem Auschecken des Codes, sowohl auf den Entwickler-Rechnern als auch in CI/CD-Pipelines.

Weniger Fehler bei der Testkonfiguration

WebDriverManager bietet eine elegante Möglichkeit zur Lösung des Umgangs mit verschiedenen Browser-Treibern, indem es diese automatisch herunterlädt und bereitstellt, was die Testdurchführung vereinfacht. Bei unseren Projekten hat sich diese Lösung bewährt und spart die in der Vergangenheit teilweise zeitintensiven Fehlersuchen.

Zurück

© 2006-2024 exensio GmbH
Einstellungen gespeichert
Datenschutzeinstellungen

Wir nutzen Cookies auf unserer Website. Einige von ihnen sind essenziell, während andere uns helfen, diese Website und Ihre Erfahrung zu verbessern.

Sie können Ihre Einwilligung jederzeit ändern oder widerrufen, indem Sie auf den Link in der Datenschutzerklärung klicken.

Zu den gesetzlichen Rechenschaftspflichten gehört die Einwilligung (Opt-In) zu protokollieren und archivieren. Aus diesem Grund wird Ihre Opt-In Entscheidung in eine LOG-Datei geschrieben. In dieser Datei werden folgende Daten gespeichert:

 

  • IP-Adresse des Besuchers
  • Vom Besucher gewählte Datenschutzeinstellung (Privacy Level)
  • Datum und Zeit des Speicherns
  • Domain
×
Irving Tschepke
Irving Tschepke
Dipl.-Wirtsch.-Ing.
Peter Soth
Peter Soth
Dipl.-Inform. (FH)
Wir antworten in wenigen Stunden.
Oder rufen Sie einfach an:
×
Irving Tschepke
Irving Tschepke
Dipl.-Wirtsch.-Ing.
Peter Soth
Peter Soth
Dipl.-Inform. (FH)
Wir antworten in wenigen Stunden.
Oder rufen Sie einfach an:
You are using an outdated browser. The website may not be displayed correctly. Close