45.3
Browser Verbindungsmodus

Um Zugriff auf den Browser zu erlangen, verfolgt QF-Test zwei verschiedene Ansätze, die im Folgenden erläutert werden. Beide Ansätze sind notwendig und sie werden weiter nebeneinander existieren und voll unterstützt 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.

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 Die aktuelle stabile Chromium Version,
nur Windows,
ist Teil der QF-Test Installation
Chrome WebDriver Vom mitgelieferten ChromeDriver werden etliche Versionen unterstützt, weitere Versionen über automatischen ChromeDriver Download. Konkrete Versionen siehe Unterstützte Technologieversionen
Firefox QF-Driver Versionen 38ESR, &=43
Firefox WebDriver Wird vom mitgelieferten GeckoDriver unterstützt, aktuell 68esr und höher
Internet Explorer QF-Driver  
Microsoft Edge WebDriver  
Microsoft Chromium Edge WebDriver  
Opera WebDriver  
SafariWebDriver 
Tabelle 45.7:  Verbindungsmodus für Browser
45.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.

45.3.2
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.

45.3.3
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.