Selenium 4.0 – Die neuen Features


In diesem Blogartikel stellen wir die wichtigsten Funktionen von Selenium 4.0 vor und beantworten die Frage: Wie sinnvoll ist es, auf Selenium 4.0 umzusteigen?


Selenium – Umfrage

Selenium ist eines der bekanntesten und beliebtesten Open-Source-Tools für die Testautomatisierung von Webanwendungen. Das zeigt auch eine Umfrage unserer Geschäftsführerin Karina Wagner bei LinkedIn. Die Ergebnisse sind mehr als eindeutig: Die Mehrheit der Teilnehmer:innen – 15 von 18 Personen – hat mit dem Tool Selenium die besten Erfahrungen gesammelt.




Selenium – Überblick

Doch was macht Selenium so beliebt? Selenium ist nicht nur ein Tool, sondern beinhaltet eine Reihe unterschiedlicher Komponenten für jedes Bedürfnis. Selenium unterstützt alle gängigen Browser, Betriebssysteme und mehrere Programmiersprachen wie C#, Java oder Python. Veröffentlicht wurde Selenium 1.0 im Jahr 2004. Damals bestand es aus folgenden Komponenten:

Selenium IDE, Selenium RC und Selenium Grid.


Selenium IDE (Integrated Development Environment)

Am leichtesten zu bedienen, ist die Selenium die. Sie steht als Firefox oder Chrome-Add-on zur Verfügung und gestattet es, die Testfälle auch ohne Programmierkenntnisse zu automatisieren. Mit dem Tool können die Benutzeraktionen ohne Probleme aufgezeichnet und wiedergegeben werden.

 

Selenium RC (Remote Control)

Selenium RC ist die Komponente für die Fernsteuerung und erlaubt es, die Testfälle in beliebiger Programmiersprache und für jede HTTP Website zu automatisieren.

 

Selenium Grid

Selenium Grid ermöglicht es, unterschiedliche Testfälle, auf unterschiedlichen Betriebssystemen und unterschiedlicher Hardware auszuführen.

 

Selenium WebDriver

In der Selenium 2.0 Version kam Selenium WebDriver hinzu mit dem Ziel, eine entscheidende Schnittstelle für die Simulation von User-Interaktionen in verschiedenen Browser zu schaffen. In der Version Selenium 3.0 verschwand Selenium RC. Der WebDriver wurde optimiert.



Selenium 4.0 – Neue Funktionalitäten

 

Am 13. Oktober 2021 erschien die lang erwartete, erste stabile Version von Selenium 4.0. Das sind die wichtigsten Neuerungen:

 

W3C Standardisierung

Bisher war die Kommunikation zwischen dem Selenium WebDriver und den eigentlichen Webbrowser durch Client-Server-Architektur als «Request» und «Response» Schnittschnellte mit zusätzlichem JSON-Drahtprotokoll verankert. Dieses Protokoll verschlüsselt und entschlüsselt die gesamte Kommunikation zwischen Selenium und Webbrowser. In der neuen Version ist diese Kommunikation nun viel einfacher und schneller, denn das Protokoll ist jetzt überflüssig und wird nicht angewandt. In der Praxis bedeutet das, dass jede Anwendung, die W3C Standardisierung verfolgt, direkt integriert werden kann. Die aktuellen Webbrowser der verschiedenen Hersteller haben bereits diese W3C-Standard-Konformität.

 

Relative Locators

 

Wer bereits einmal einen automatischen Testscript geschrieben hat, weiß genau, dass das Auffinden bestimmter GUI-Elemente viel Zeit in Anspruch nimmt. Sobald diese identifiziert wurden, gibt es dennoch keine Garantie, dass die Automatisierung jedes Mal erfolgreich verläuft. Es ist die Aufgabe der Test-Automatisiererin oder des Test-Automatisierers, die Locators über das gesamte Softwareprojekt hinweg zu verwalten und zu pflegen.

 

Um einen Locator in Selenium zu identifizieren, müsste der User die hierarchischen Baumknoten im DOM anhand von XPath bzw. CSS-Selektor festlegen. An dieser Stelle kommen die «Relative Locators» ins Spiel: Diese ermöglichen es, die GUI-Elemente basierend auf ihrer tatsächlichen Position zu identifizieren. Zu den bereits bestehenden acht Locator-Strategien kommen in der neuen Version zusätzliche Locators hinzu, die Elemente bezüglich ihrer Nachbarelemente lokalisieren können.



Mehrere Fenster inkl. Registerkarten

Nun ist es möglich, für einen einzigen Testdurchlauf mehrere Fenster oder ein Fenster mit Registerkarte durch diese beiden Methoden zu öffnen:

 

drive.switchTo().newWindow(WindowType.WINDOW);

öffne neues Fenster und wechsle dorthin

 

drive.switchTo().newWindow(WindowType.TAB);

öffne neue Registerkarte und wechsle dorthin

 

Verbesserung an Selenium IDE

Neben der optimierten Benutzeroberfläche wurden in der neusten Selenium IDE Version auch die Exportfunktion, CLI-Runner und Reporting verbessert. Testautomatisiererinnen und -automatisierer können nun den Code der Programmiersprachen «Java», «Python», «JavaScript», «.Net» und «Ruby» schnell und effizient exportieren. Mit dem CLI-Runner sind die Wiedergabe sowie parallele Runs auf mehreren Webbrowsern möglich. Das Reporting beinhaltet nun Details zur Gesamtanzahl der erfolgreichen und fehlgeschlagenen Testfälle und zur Zeit der Ausführung. Zudem wurden die Stabilität und die Zuverlässigkeit des Selenium IDEs verbessert.

 

Die Klasse «action class» wird in Selenium IDE benötigt, um Eingabe-Aktionen einer Maus oder einer Tastatur auf Webelementen z.B. «left click», «right click», «double click» zu simulieren.

 

  • Klick auf Webelement
  • Alt: moveToElement(onElement).click()
  • Neu: click(WebElement)
  • Klick auf Webelement ohne Klick auszulösen
  • Alt: moveToElement(onElement).clickAndHold()
  • Neu: clickAndHold(WebElement)
  • Rechtsklick
  • Alt: moveToElement(onElement).contextClick()
  • Neu: contextClick(WebElement)

 

Chrome-Entwicklungstools

 

Ab sofort unterstützt der Chrome Browser die «Chrome DevTools-Protokolle» – sprich die Entwicklungstools – und ermöglicht dem Benutzer, Profiler, Netzwerk, Leistungen, Sicherheit, Ressourcen, Cache, CDP-Domänen etc. abzurufen. Diese Entwicklungstools wurden direkt in den Chrome Browser eingebaut und ermöglichen den Usern, die Probleme mit dem Testscript effizienter zu überprüfen. Neu ist auch die  Klasse «ChromiumDriver class», die zwei Methoden inkludiert, die den Zugang zu Chrome-Entwicklungstools ermöglichen:


  • getDevTools()
  • executeCdpCommand()

 

Selenium Grid’s Optimierung

 

In der Vergangenheit war die Bedienung von Selenium Grid alles andere als selbstverständlich und einfach. Das hat sich nun geändert: Nun gibt es eine benutzerfreundliche GUI, die Informationen zu Laufzeit und Sitzungskapazität übersichtlich darstellt.

 

Auch die Probleme aus der vorherigen Version wurden komplett beseitigt. Sie betreffen vor allem die Installation an sich und die Konnektivität zwischen Knoten und dem Hub. Knoten dienen dazu, die Steuerung der Testfälle auf den jeweiligen Endsystemen auszuführen. Diese können jetzt mehrfach verwendet werden. Der Startprozess ermöglicht es, das Tool einfach zu bedienen und Hub und Knoten parallel zu starten.

 

Anstatt komplizierte «Virtual Machines» einzurichten, können nun Docker eingesetzt werden. Selenium Grid ist außerdem sehr hilfreich beim DevOps-Prozess und erlaubt die Integration unter anderem mit den Tools AWS oder Azure.

 

Fazit

 

Viele interessante Funktionen wurden überarbeitet bzw. optimiert und laufen in der aktuellen Version viel stabiler und flüssiger. Es macht Spaß, die Testfälle mit Selenium 4.0 zu automatisieren und die neue Benutzeroberfläche auszuführen. Eine Empfehlung unsererseits: Überzeugen Sie sich einfach selbst von Selenium 4.0.

 

Wenn Sie weitere Fragen zu Selenium haben oder eine Beratung zur Test Automatisierung wünschen, nehmen Sie unverbindlich Kontakt mit uns auf.


Share by: