Browser connection mode

QF-Test has three different modes to gain access to a browser. This section describes these modes in details.

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.

5.3+ For the browsers based on Chromium there is a more effective alternative to Selenium WebDriver - CDP-Driver.

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

BrowserConnection modeComment
ChromeQF-DriverA current stable Chromium version is part of the QF-Test distribution (Windows only)
ChromeCDP-DriverExperimental support for newer versions also (see Supported technologies)
ChromeWebDriverThe ChromeDriver shipped supports various versions, further versions via the automatic ChromeDriver Download. For version number see Supported technologies
Chrome (headless)CDP-Driver 
Chrome (headless)WebDriver 
FirefoxWebDriverSupported by the GeckoDriver shipped, currently 102esr and higher
Firefox (headless)WebDriver 
Microsoft EdgeCDP-Driversee Chrome (CDP-Driver)
Microsoft EdgeWebDriver 
Microsoft Edge (headless)CDP-Driver 
Microsoft Edge (headless)WebDriver 
OperaCDP-Driversee Chrome (CDP-Driver)
OperaWebDriverdeprecated
SafariWebDriver 
Table 49.8:  Connection mode for browsers

QF-Driver connection mode

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.

5.3+49.3.2
CDP-Driver connection mode

Chrome DevTools Protocol is an API that is available for testing and debugging of browsers based on Chromium (Google Chrome, Microsoft Edge and Opera) and is used for example in embedded development tools. Since version 5.3 QF-Test uses this interface to connect and communicate with a browser. Unfortunately, Mozilla does not provide a full implementation of such an interface for Firefox. Such an implementation does not exist also for Safari.

WebDriver in general

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.

Known limitations of the WebDriver mode

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.