嵌入式框架/无头浏览器

本主题介绍如何在嵌入式框架中或在测试无头浏览器时开始测试 Web 应用程序。

有关在 Internet Explorer 嵌入式浏览器控件中测试 Web 应用程序的详细信息,请参阅Internet Explorer 嵌入式浏览器控件

警告: 本主题中的说明包括从 Internet 下载 OpenText 不提供的可执行文件,例如 chromedriver.exephantomjs.exeWebView2 driver

我们鼓励您仅使用来自官方 Chrome、NW.js 和 PhantomJS Internet 站点的正版可执行文件。不遵守此建议可能会使您的系统面临更大的安全风险。所有相关风险均由客户自行承担,OpenText 对此不承担任何责任。

受支持的框架/无头浏览器

UFT One 可以使用标准 GUI 测试支持,对使用以下框架和无头浏览器开发的 Web 应用程序进行测试:

基于 Chromium 的框架
  • Chromium Embedded Framework (CEF)

    Chromium Embedded Framework 支持适用于 Java CEF、CEF Sharp 和 Adobe CEP。本主题中的 CEF 是指上述所有对象。

  • Electron

  • JxBrowser

  • NW.js

在测试基于 Chromium 的框架之前,请参阅连接到 Web 应用程序

Microsoft Edge WebView2 在测试 Microsoft Edge WebView2 中嵌入的 Web 应用程序之前,请参阅连接到 Web 应用程序
无头浏览器

注: 不支持在 PhantomJS 工具包或 Headless Chrome 上录制。

.NET Web Forms、基于 Web 的 SAP、Siebel 和 Java 等其他基于 Web 的插件不支持这些高级框架和浏览器。但是,基于 Web 扩展性的插件 (例如 Web 2.0 工具包) 支持这些高级框架和浏览器。

返回页首

连接到 Web 应用程序

在使用“基于 Chromium 的框架”Microsoft Edge WebView2 开发的 Web 应用程序上录制或运行测试之前,将 UFT One 连接到 Web 应用程序:

要将 UFT One 连接到 Web 应用程序,请执行以下操作:

  1. 准备 Web 驱动程序。

    确保您的计算机上存储了与嵌入式浏览器版本匹配的 Web 驱动程序。

    CEF、Electron 和 JxBrowser 114 或更早版本

    官方网站下载 ChromeDriver。

    115 或更高版本

    Chrome for Testing 可用性控制面板下载 Chrome for Testing。如果找不到与框架版本匹配的版本,请从 Google Chrome Labs 下载。

    Microsoft Edge WebView2 Microsoft Edge WebDriver 下载页面下载 WebView2 驱动程序。
    NW.js

    下载 NW.js SDK,其中包含 chromedriver.exe 文件。

  2. 对于 CEF、Electron 和 JxBrowser,将 <UFT One 安装文件夹>\bin\WebDriver 目录中的 chromedriver.exe 文件替换为与您的应用程序相匹配的版本。

    对于 NW.js,将 chromedriver.exe 文件复制到 <UFT One 安装文件夹>\bin\WebDriver\NW 目录中。

    或者,您可以针对不同的应用程序使用不同版本的 ChromeDriver。将 chromedriver.exe 文件存储在不同的位置,并在对 WebUtil.AttachRemoteDebugging 的调用中提供相关 ChromeDriver 的路径。

  3. 将嵌入式浏览器配置为始终打开用于进行远程调试的端口。有关如何执行此操作的说明,请查看嵌入式浏览器的文档。

    记下要在后续步骤中使用的端口号。

    Example: 在 CEF 文件夹中,打开命令提示符并运行以下命令: cefclient.exe --remote-debugging-port=<端口号>

    官方 WebView2 应用程序侦听调试端口的默认方式是添加环境变量 WEBVIEW2_ADDITIONAL_BROWSER_ARGUMENTS 并将其值设置为 --remote-debugging-port=<端口>

  4. 请执行以下操作之一以连接到 Web 应用程序。

    • 在“选项”对话框的“远程连接”窗格中,为 Web 应用程序添加远程地址和远程调试端口号。这使 UFT 能够找到应用程序的对象。

      要使用此方法,您必须执行第二步。

      有关详细信息,请参阅 Web 远程连接窗格 (“选项”对话框 >“GUI 测试”选项卡)

    • 将以下语句添加到测试或组件中,以使 UFT One 连接到应用程序。在这些语句中,提供远程 IP 地址、远程调试端口号和 Web 驱动程序路径。

      基于 Chromium 的框架

      WebUtil.AttachRemoteDebugging "localhost:<端口>", "default", "<驱动程序路径>"

      Microsoft Edge WebView2

      WebUtil.AttachRemoteDebugging "localhost:<端口>", "MsEdgeWebView2", "<驱动程序路径>"

      有关更多详细信息,请参阅《UFT One Object Model Reference for GUI Testing》实用程序部分中的 WebUtil 对象。

      要从应用程序分离,请使用以下语句:

      WebUtil.DetachRemoteDebugging "localhost:<端口>"

    备注: 如果已手动关闭与该应用程序的连接,UFT One 将无法标识应用程序中的对象。

  5. 如果您正在远程计算机上运行 UFT One 脚本,请在运行测试前继续在远程计算机上配置连接

返回页首

在远程计算机上配置连接

如果您使用的是基于 Chromium 的框架并正在远程计算机上运行 UFT One 脚本,请按如下所示另外配置远程计算机:

  1. 从以下位置之一安装 socat:

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

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

  2. 运行 socat 命令:

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

    其中:

    <x> 是指 UFT One 尝试访问的目标计算机上的端口号

    <y> 是指用于在目标计算机上进行调试而公开的 CEF 远程调试端口

  3. 禁用或更改防火墙以允许相关端口。

UFT One 现在可以通过您为 <x> 定义的端口使用远程应用程序。

有关更多详细信息,请参阅: http://stackoverflow.com/questions/6827310/chrome-remote-debugging-doesnt-work-with-ip

返回页首

准备在 Headless Chrome 上运行测试

在 Headless Chrome 上运行测试之前,必须执行一些准备步骤。

要准备在 Headless Chrome 上运行测试,请执行以下操作:

  1. 检查随 UFT One 安装的 ChromeDriver 是否与您使用的 Headless Chrome 版本相匹配。如果不匹配,请参考下表获取正确的 ChromeDriver:

    Headless Chrome 114 或更早版本 官方网站下载 ChromeDriver。
    Headless Chrome 115 或更高版本

    Chrome for Testing 可用性控制面板下载 Chrome for Testing。如果找不到与框架版本匹配的版本,请从 Google Chrome Labs 下载。

    将 <UFT One 安装文件夹>\bin\WebDriver 目录中的 chromedriver.exe 文件替换为正确的 chromedriver.exe 文件。

  2. 在“录制和运行设置”对话框中选择 Google Headless Chrome 作为浏览器。

  3. 如果您希望运行使用 AI 对象标识的步骤,建议放大默认浏览器大小以确保您想要测试的所有控件均可见。

    浏览器大小受 --window-size 参数控制 (单位: 像素)。

    将浏览器大小设置添加到“<UFT One 安装文件夹>\bin\mic.ini”文件结尾。例如:

    Copy code
    [ChromeHeadlessOption]
    --window-size=1920x1080

返回页首

在 PhantomJS 上运行测试

在 PhantomJS 工具包上运行测试,而不在现有测试中进行任何更改。

要在 PhantomJS 上运行测试,请执行以下操作:

  1. phantomjs.exe 文件添加到“<UFT One 安装文件夹>\bin\PhantomJS”目录中。

    下载 PhantomJS 时可以访问此文件。有关详细信息,请参阅 http://phantomjs.org

  2. 在“录制和运行设置”中,选择 PhantomJS 作为浏览器。

  3. UFT One 将使用较新的 WebDriver 版本,该版本不支持 PhantomJS。

    要将 WebDriver 降级以支持 Phantom JS,请执行以下操作:

    将“<UFT One 安装文件夹>\bin”中的 WebDriver.dllWebDriverHost.exe 文件替换为“<UFT One 安装文件夹>\bin\WebDriver\3.0.1.0”中的相同文件。

运行测试时,UFT One 将启动已安装的 PhantomJS 版本并在工具包上运行测试。

返回页首

另请参见: