Das neue Major Release des Testautomatisierungs-Frameworks Selenium ist seit März 2020 verfügbar. Ein guter Grund, sich die wichtigsten Änderungen einmal genauer anzusehen.
Selenium WebDriver im W3C-Standard
Lange hatten wir und die gesamte Selenium-Gemeinde gehofft, dass dies geschieht: Nun ist Selenium WebDriver endlich Teil des W3C-Standard. Hierzu hat der W3C ein offizielles Recommendation-Dokument veröffentlicht. Durch die Anerkennung als offizieller W3C-Standard wird die Administration wesentlich erleichtert und die Bedeutung von Selenium (WebDriver) wird vom W3C offiziell anerkannt.
Selenium Grid ist nun einfacher zu konfigurieren und threadsicher
Selenium Grid wurde an mehreren Stellen verbessert.
Selenium Grid? Ganz kurz gesagt handelt es sich um eine Möglichkeit, Selenium-Tests gleichzeitig von verschiedenen Clients/Browsern ausführen zu lassen. Das heißt, man kann in die Tests eintragen, mit welchem Browser bzw. auf welchem Betriebssystem dieser ausgeführt wird und der Selenium Grid-Hub steuert die Verteilung auf die entsprechenden Nodes.
Die Konfiguration von Selenium Grid war ein bisschen hakelig, aber wurde nun wesentlich vereinfacht. Jede Instanz kann als Hub (Steuerung) und als Node (Client) dienen. Außerdem wurde das Thema Thread-Safety angegangen. Unter Threadsicherheit versteht man, dass Software gleichzeitig mehrfach ausgeführt werden kann, ohne sich gegenseitig zu stören. Vorher mussten hierfür zusätzliche Anstrengungen - mit weiterer Programmierung und Bibliotheken - unternommen werden.
Selenium IDE TNG
Die Selenium IDE war ursprünglich ein Firefox-Plugin, das als Capture/Replay-Tool auf der Basis des Selenium-Core entwickelt wurde. Als Mozilla die Plugin-Architektur von Firefox geändert hat, wurde die IDE nicht angepasst. Nun gibt es eine neue Version, die als The Next Generation bezeichnet wird. Diese existiert für Mozilla Firefox und Google Chrome. Hierfür wurde eine neue Plugin-Architektur entworfen, die die Nutzung für weitere Browser oder Plugin-Autoren erleichtert.
Außerdem hat die IDE einen sogenannten CLI-Runner, der es ermöglicht, die Tests auch von außerhalb des Browsers zu starten. Vorher mussten diese über den Browser selbst aufgerufen werden, was den Nutzen als Testautomatisierungswerkzeug stark einschränkte.
Dev Tool Support
Mit der Version 4.0 ist es nun möglich, viele Funktionen der Chrome Entwicklertools in unsere Automatisierung einzubinden. Dies ermöglicht es uns, eine Vielzahl von Testfällen, die früher nur manuell oder schwer automatisierbar waren, in unsere Testfälle einzubauen. Unter anderem ist es damit möglich, den Standort zu manipulieren, wodurch verschiedene Lokalisierungen getestet werden können. Eine andere Anwendungsmöglichkeit ist das Manipulieren der Internetgeschwindigkeit, wodurch eine Reihe von Netzen wie 3G oder 4G simuliert werden können.
Relative Locators
Ein weiteres neues Feature ist die Möglichkeit, Elemente mit relative Locators zu identifizieren. Normalerweise werden Elemente in Selenium Testskripten über Ids, CSS Werte oder den X-Path gefunden. Mit Selenium 4 ist es nun möglich, Elemente auch über ihre relative Position zu einem anderen Element zu identifizieren. Sollte z.B. die Id eines Elements bekannt sein, dies aber nicht für das Element rechts davon zutreffen, ist es möglich, dieses über die Position zu identifizieren. Dies ermöglich es, Positionsverhältnisse oder schwer zu identifizierende Elementen zu automatisieren.
Window handling
Das neue Window Management von Selenium ermöglicht es dem Testskript, mit mehren Browserwindows und Tabs zu arbeiten. Dies wird vor allem bei Applikationen hilfreich sein, in denen verschiedene Prozesse voneinander abhängig sind.
Screenshots
Mit den neuen Screenshotsänderungen ist es nun möglich, Bilder der getesteten Webelemente oder der kompletten Seite aufzunehmen. Wir haben dadurch neue Möglichkeiten, unser Logging und Reporting zu verbessern.
Webinar: Testautomatisierung mit Open Source Tools (Selenium, Kubernetes, Docker) - Live Demo