46.3
Browser Verbindungsmodus

Um Zugriff auf den Browser zu erlangen, verfolgt QF-Test verschiedene Ansätze, die im Folgenden erläutert werden.

4.1+ Da der QF-Driver Ansatz zur Browser-Anbindung mit Hilfe von Embedding leider nicht von allen Browserherstellern weiter gepflegt bzw. überhaupt unterstützt wird, wurde für QF-Test 4.1 ein neuer Mechanismus implementiert, um auch zukünftige Browser und Browser-Versionen für die Tests verwenden zu können. Dieser Mechanismus verwendet als Bindeglied zwischen dem Browser und QF-Test den Selenium WebDriver.

5.3+ Darüber hinaus existiert mit dem CDP-Driver für Chromium-basierte Browser eine effiziente Alternative zum WebDriver-Ansatz.

Nachfolgende Tabelle listet die Browser mit dem jeweils möglichen Verbindungsmodus auf. QF-Test versucht automatisch den richtigen Modus zu wählen. Sie können die Kontrolle darüber mit Hilfe des Attributs 'Verbindungsmodus für den Browser' im 'Web-Engine starten' Knoten übernehmen.

Browser Verbindungsmodus Bemerkung
Chrome QF-Driver Eine aktuelle stabile Chromium Version, ist Teil der QF-Test Installation (nur Windows)
Chrome CDP-Driver Experimentelle Unterstüzung auch für neuere Versionen (siehe Unterstützte Technologien)
Chrome WebDriver Unterstützung über automatischen ChromeDriver Download. Konkrete Versionen siehe Unterstützte Technologien
Chrome (headless) CDP-Driver  
Chrome (headless) WebDriver  
Firefox QF-Driver Versionen 38ESR und 43
Firefox WebDriver Wird vom mitgelieferten GeckoDriver unterstützt, aktuell 68esr und höher
Firefox (headless) WebDriver  
Internet Explorer QF-Driver  
Microsoft Edge CDP-Driver siehe Chrome (CDP-Driver)
Microsoft Edge WebDriver  
Microsoft Edge (headless) CDP-Driver  
Microsoft Edge (headless) WebDriver  
Microsoft Edge (legacy) WebDriver  
Opera CDP-Driver siehe Chrome (CDP-Driver)
Opera WebDriver  
SafariWebDriver 
Tabelle 46.7:  Verbindungsmodus für Browser
46.3.1
QF-Driver Verbindungsmodus

Bei diesem Ansatz wird der auf dem Rechner des Anwenders installierte Browser in ein sogenanntes Wrapper-Fenster eingebunden. Man spricht bei diesem Ansatz auch von Embedding. QF-Test bindet in dieses Fenster den lokal installierten Web-Browser nativ ein und erlangt somit Zugriff auf die Automatisierungs-Interfaces des jeweiligen Browsers. Über diese kann QF-Test dann die benötigten Events vom Browser abgreifen aber auch umgekehrt Events in den Browser einspeisen.

5.3+46.3.2
CDP-Driver Verbindungsmodus

In Browsern, die auf Chromium basieren (Google Chrome, Microsoft Edge und Opera), steht für Test- und Debuggingzwecke eine spezielle Schnittstelle zur Verfügung, welche zum Beispiel auch durch die im Browser eingebetteten Entwicklungswerkzeuge verwendet wird. QF-Test kann ab Version 5.3 diese Schnittstelle und das Chrome DevTools Protokoll nutzen, um mit dem Browser zu kommunizieren und zu interagieren. Für Firefox steht aktuell leider noch keine vollwertige Implementierung der Schnittstelle durch Mozilla zur Verfügung, gleiches gilt für Safari.

46.3.3
WebDriver Verbindungsmodus

WebDriver entwickelt sich zu einem W3C-Standard für die Steuerung von Web-Browsern. (http://www.w3.org/TR/webdriver). Er ist definiert als sogenanntes Remote-Control-Interface, das es erlaubt, die im Browser anzeigten Inhalte zu analysieren und den Browser zu steuern. WebDriver stellt hierfür ein plattform- und sprachunabhängiges Netzprotokoll zur Verfügung.

Die verschiedenen Browser-Hersteller haben sich auf diesen Quasi-Standard geeinigt, was dazu führt, dass die WebDriver Integration direkt von den Browser-Herstellern mitentwickelt wird. Die Integration erfolgt teilweise über Plugins, bei manchen Herstellern ist die Integration bereits direkt mit in der Standard-Installation des Browsers enthalten.

QF-Test nutzt die WebDriver Interfaces um mit dem Browser zu interagieren. Da der WebDriver Ansatz nur teilweise zu den Konzepten von QF-Test passt, wurde die Web-Engine von QF-Test so erweitert, dass auch bei der Anbindung per WebDriver ein möglichst großer Funktionsumfang von QF-Test genutzt werden kann und dem Anwender die Mehrwert-Features von QF-Test wie z.B. Synchronisation, Abstraktion von Komponenten usw. wie gewohnt zur Verfügung stehen.

Hinweis Der Selenium WebDriver setzt ein Java ab Version 8 und höher voraus.

46.3.4
Bekannte Einschränkungen des WebDriver Modus

Die WebDriver Anbindung an QF-Test befindet sich aktuell noch in der aktiven Entwicklung. Daher stehen leider einige Funktionen, die von der QF-Driver Anbindung bekannt sind, noch nicht zur Verfügung. In den meisten Fällen sind diese Einschränkungen dem Umfang der WebDriver Spezifikation zuzuschreiben.

  • Keine Unterstützung von Datei-Downloads und HTTP-Authentifizierungs-Dialogen.
  • Keine Möglichkeit, HTTP-Requests direkt aufzuzeichnen bzw. abzuspielen.
  • wd.getComponent(WebElement) funktioniert bisher noch nicht bei Elementen in verschachtelten Frames.
  • Events, die zum Laden einer neuen Webseite führen, werden teilweise nicht richtig aufgezeichnet.
  • Event-Synchronisierung ist teilweise verzögert.