Embedded frameworks / headless browsers

This topic describes how to get started with testing Web apps in embedded frameworks, or testing headless browsers.

For details on testing web apps in an Internet Explorer embedded browser control, see Internet Explorer embedded browser controls.

Caution: The instructions in this topic include downloading executable files from the Internet, such as chromedriver.exe, phantomjs.exe, and WebView2 driver which are not provided by Micro Focus.

We encourage you to use only genuine executable files from the official Chrome, NW.js, and PhantomJS Internet sites. Failing to comply with this recommendation may expose your system to increased security risks. Any and all associated risks are the Customer's responsibility and Micro Focus will not be held accountable for the same.

Supported frameworks / Headless browsers

UFT One can record and run tests using standard GUI testing support on Web apps developed with the following frameworks and Headless browsers:

Chromium-based frameworks
  • Chromium Embedded Framework (CEF)

    Chromium Embedded Framework support is applicable for Java CEF, CEF Sharp, and Adobe CEP. CEF in this topic refers to all of the above.

  • Electron

  • JxBrowser

  • NW.js

Before you test Chromium-based frameworks, see Connect to your Web app (Chromium-based frameworks and Microsoft Edge WebView2).

Headless browsers
  • Headless Chrome. Before you test headless Chrome, see Headless Chrome.

  • PhantomJS. Before you test PhantomJS, see PhantomJS.

Microsoft Edge WebView2

Before you test Web apps embedded in Microsoft Edge WebView2, see Connect to your Web app (Chromium-based frameworks and Microsoft Edge WebView2).

These advanced frameworks and browsers are not supported for other Web-based add-ins, such as .NET Web Forms, Web-based SAP, Siebel, and Java.

The advanced frameworks and browsers are supported in Web extensibility-based add-ins, such as the Web 2.0 Toolkits.

Back to top

Connect to your Web app (Chromium-based frameworks and Microsoft Edge WebView2)

Before recording or running your test on Web apps developed with Chromium-based frameworks and Microsoft Edge WebView2, do the following:

To connect to your Web app:

  1. Prepare the web driver.

    • Chromium-based frameworks: A ChromeDriver for testing CEF, Electron and JxBrowser applications is automatically installed with the UFT One installation. But if a different version is required, see Using different ChromeDriver versions.

    • Microsoft Edge WebView2: Download the WebView2 driver from the Microsoft Edge WebDriver download page.

      Make sure the version of Microsoft Edge WebDriver matches the version of the browser embedded in the WebView2.

  2. Configure your embedded browser to always open a port for remote debugging. For instructions on how to do this, check your embedded browser's documentation.

    Note the port number, to use in subsequent steps.

    Example: In the CEF folder, open a command prompt and run the following command: cefclient.exe --remote-debugging-port=<port number>

    The default way for an official WebView2 application to listen to debugging port is to add environment variable WEBVIEW2_ADDITIONAL_BROWSER_ARGUMENTS and set its value to --remote-debugging-port=<port>.

  3. Do one of the following to connect to your Web app.

    • Add the remote address and remote debugging port number for your Web app in the Remote Connections pane of the Options dialog box. This enables UFT to find the application's objects.

      For details, see Web Remote Connections Pane (Options Dialog Box > GUI Testing Tab).

    • Add the following statements to your test or component to enable UFT One to attach to the application. In these statements, provide the remote IP address, remote debugging port number, and web driver path.

      Chromium-based frameworks

      WebUtil.AttachRemoteDebugging "localhost:<port>", "default", "<DriverPath>"

      Microsoft Edge WebView2

      WebUtil.AttachRemoteDebugging "localhost:<port>", "MsEdgeWebView2", "<DriverPath>"

      For more details, see the WebUtil object in the Utility section of the UFT One Object Model Reference for GUI Testing.

      To detach from the application, use the following statement:

      WebUtil.DetachRemoteDebugging "localhost:<port>"

      Note: UFT One cannot identify objects in your application if you have manually closed the connection to that application.

  4. Perform additional steps on your UFT One machine when testing NW.js framework. For details, see NW.js Framework.

  5. If you are running a UFT One script on a remote machine, continue with Configure connections on a remote machine (Chromium-based framework) before you run your test.

Using different ChromeDriver versions

The UFT One installation includes a ChromeDriver for testing CEF, Electron and JxBrowser applications. You can find the version of this ChromeDriver in the Support Matrix.

If the Chromium-based framework you are using for your application requires a different ChromeDriver version, do one of the following:

  • In the <UFT One installation folder>\bin\WebDriver directory, replace the chromedriver.exe file with a the version that matches your application.

  • Store one or more versions of the chromedriver.exe on the UFT One computer. When calling the WebUtil.AttachRemoteDebugging method, specify the path to the relevant chromedriver.exe.

For more details, see http://chromedriver.chromium.org/downloads.

NW.js Framework

To test Web apps that are embedded in the NW.js framework, UFT One communicates with the NW.js framework via the NW.js WebDriver.

Before testing your NW.js application, do the following to ensure that the NW.js WebDriver is present in the UFT One installation folder.

  1. Download the NW.js SDK, which includes the chromedriver.exe file.
  2. Copy the chromedriver.exe file to the <UFT One installation folder>\bin\WebDriver\NW directory.

You can use different versions of the NW.js WebDriver for different applications. Store the chromedriver.exe file in different locations, and provide the path to the relevant WebDriver in the call to WebUtil.AttachRemoteDebugging.

Back to top

Configure connections on a remote machine (Chromium-based framework)

If you are using a Chromium-based framework and running a UFT One script on a remote machine, additionally configure the remote machine as follows:

  1. Install socat from one of the following locations:

    Mac: http://www.dest-unreach.org/socat/download/

    Windows: https://github.com/tech128/socat-1.7.3.0-windows

  2. Run the socat command:

    socat tcp-listen:<x>,fork tcp:localhost:<y>

    Where:

    <x> is the port number on the target machine that UFT One tries to access

    <y> is the CEF remote debugging port exposed for debugging on the target machine

  3. Disable or change the firewall to allow the relevant port.

UFT One is now able to work with remote applications through the port you defined for <x>.

For more details, see: http://stackoverflow.com/questions/6827310/chrome-remote-debugging-doesnt-work-with-ip

Back to top

Headless Chrome

Before recording or running your tests on headless Chrome, do the following:

  1. Check whether the ChromeDriver installed with UFT One matches the version of headless Chrome you are using.

    If not, replace the chromedriver.exe file in the <UFT One installation folder>\bin\WebDriver directory with a version that matches your application.

  2. Select Google Headless Chrome as your browser in the Record and Run Settings dialog box.

Back to top

PhantomJS

Run tests on the PhantomJS toolkit without any changes in your existing test.

To do this, perform the following steps:

  1. Add the phantomjs.exe file to the <UFT One installation folder>\bin\PhantomJS directory.

    This file is accessible as part of your PhantomJS download. For details, see http://phantomjs.org

  2. In the Record and Run Settings, select PhantomJS as your browser.

  3. UFT One uses a newer WebDriver version, which does not support PhantomJS. To downgrade your WebDriver to support Phantom JS, do the following:

    Replace the WebDriver.dll and WebDriverHost.exe files in the <UFT One installation folder>\bin folder with the ones in <UFT One installation folder>\bin\WebDriver\3.0.1.0.

When you run your test, UFT One will launch the installed version of PhantomJS and run the test on the toolkit.

Note: Recording is not supported for PhantomJS.

Back to top

See also: