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

Browser Connection mode Comment
Chrome QF-Driver A current stable Chromium version is part of the QF-Test distribution (Windows only)
Chrome CDP-Driver Experimental support for newer versions also (see Supported technologies)
Chrome WebDriver The 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  
Firefox QF-Driver Versions 38ESR and 43
Firefox WebDriver Supported by the GeckoDriver shipped, currently 68esr and higher
Firefox (headless) WebDriver  
Internet Explorer QF-Driver  
Microsoft Edge CDP-Driver see Chrome (CDP-Driver)
Microsoft Edge WebDriver  
Microsoft Edge (headless) CDP-Driver  
Microsoft Edge (headless) WebDriver  
Microsoft Edge (legacy) WebDriver  
Opera CDP-Driver see Chrome (CDP-Driver)
Opera WebDriver  
Table 46.7:  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.

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.