QF-Test has two connection modes the gain access to a browser, QF-Driver mode and
WebDriver mode. Both modes have their virtues and will continue to be supported.
4.1+
Given that the QF-Driver approach using embedding is not maintained anymore by some browser
vendors or is not supported at all, a new mechanism was implemented for QF-Test 4.1 to support
future browsers and browser versions.
This mechanism uses Selenium WebDriver as a bridge between the browser and QF-Test.
The following table lists browsers and the respective connection mode.
QF-Test determines the correct mode automatically by default. However, you
can override the choice via the attribute 'Browser connection mode'
in the 'Start web engine' node
|
Browser |
Connection mode |
Comment |
Chrome |
QF-Driver |
Current stable Chromium Version, Windows only, Part of the QF-Test
distribution |
Chrome |
WebDriver |
The ChromeDriver shipped supports various versions, further versions via
the automatic ChromeDriver Download. For version number see Supported technology versions |
Firefox |
QF-Driver |
Versions 38ESR, &=43 |
Firefox |
WebDriver |
Supported by the GeckoDriver shipped, currently 68esr and higher |
Internet Explorer |
QF-Driver |
|
Microsoft Edge |
WebDriver |
|
Microsoft Chromium Edge |
WebDriver |
|
Opera |
WebDriver |
|
Safari | WebDriver | |
|
| | Table 46.7: Connection mode for browsers | |
This approach integrates the locally installed browser into a wrapper-window. This approach
is also called embedding. QF-Test natively embeds the browser into its own window, thus gaining
access to its automation-interfaces. By using these interfaces
QF-Test can listen for events from the browser and is also able to inject events
into the browser.
WebDriver is evolving into a W3C-standard for interacting with web browsers.
(http://www.w3.org/TR/webdriver).
WebDriver is a remote control interface that enables introspection and control of browsers,
based on a platform and language-neutral wire protocol.
The various browser vendors have agreed on this quasi-standard, so that the WebDriver
integration is partly implemented directly by the vendors themselves. Partially the
integration is based on plugins, some vendors already include
the integration in the default setup of their browsers.
QF-Test uses the WebDriver interfaces to interact with the browser. Since the WebDriver approach
only partially
fits the concepts of QF-Test, its web engine was extended so that most of QF-Test's functionality is
also available via WebDriver, including the added benefits like synchronization, abstraction of components etc.
Note
Selenium WebDriver requires Java version 8 or higher.
The WebDriver connection mode is under active development. Due to this,
some features known from QF-Driver connection mode are not yet available,
mostly due to restrictions of the WebDriver specification.
- No support of file downloads and HTTP authentication.
- It is not possible to record or replay HTTP requests directly.
- wd.getComponent(WebElement) does not work currently on elements in inner frames.
- Events triggering a page load are sometimes not recorded.
- Event-Synchronization is in some cases delayed.