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 |
|
Safari | WebDriver | |
|
| | Tabelle 46.7: Verbindungsmodus für Browser | |
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.
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.
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.