嵌入式框架/无头浏览器

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

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

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

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

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

OpenText Functional Testing 可以使用标准 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 应用程序
无头浏览器

在测试 Headless Chrome 之前,请参阅 准备在 Headless Chrome 上运行测试

注: 不支持在 Headless Chrome 上录制。

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

返回页首

连接到 Web 应用程序

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

要将 OpenText Functional Testing 连接到 Web 应用程序,请执行以下操作:

  1. 准备 Web 驱动程序。

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

    CEF、Electron 和 JxBrowser 114 或更早版本

    从 Chrome for Developers 官方网站下载 ChromeDriver。

    115 或更高版本

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

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

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

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

    对于 NW.js,将 chromedriver.exe 文件复制到“<Installdir>\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 应用程序添加远程地址和远程调试端口号。这样 OpenText Functional Testing 就能够找到相应应用程序的对象。

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

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

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

      基于 Chromium 的框架

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

      Microsoft Edge WebView2

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

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

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

      WebUtil.DetachRemoteDebugging "localhost:<端口>"

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

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

返回页首

在远程计算机上配置连接

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

  1. 根据远程计算机的操作系统 (Mac 或 Windows) 从 Internet 下载 socat 后,请安装它。

  2. 运行 socat 命令:

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

    其中:

    <x> 是指 OpenText Functional Testing 尝试访问的目标计算机上的端口号

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

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

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

返回页首

准备在 Headless Chrome 上运行测试

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

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

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

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

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

    将“<Installdir>\bin\WebDriver”目录中的 chromedriver.exe 文件替换为正确的 chromedriver.exe 文件。

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

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

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

    将浏览器大小设置添加到“<Installdir>\bin\mic.ini”文件末尾。例如:

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

返回页首

另请参见: