已知问题 - 嵌入式框架和无头浏览器

本主题列出了使用 OpenText Functional Testing 在嵌入式框架和无头浏览器中测试 Web 应用程序的已知问题。

Chromium Embedded Framework (CEF)/Electron/JxBrowser/NW.js/Microsoft Edge WebView2

在使用 CEF、Electron、JxBrowser、NW.js 框架和 Microsoft Edge WebView2 应用程序时,OpenText Functional Testing 存在以下已知问题。

不支持的功能

使用 CEF、Electron、JxBrowser、NW.js 或 Microsoft Edge WebView2 应用程序时,不支持以下功能:

  • 导航并识别

  • 拖放

  • 交互屏幕

  • Web 选项 (“工具”>“选项”>GUI 测试”选项卡 >“Web”节点)

  • 底层录制

在 JxBrowser 上,不支持在多个选项卡或窗口上运行测试。

不支持的对象和方法

使用 CEF、Electron、JxBrowser、NW.js 或 Microsoft Edge WebView2 应用程序时,不支持以下对象和方法:

  • * about://* 页面

  • * chrome://* 页面

  • 浏览器对话框 (如“警报”、“确认”、“提示”)

  • 模式对话框或无模式对话框

  • WebFile 测试对象

  • ViewLink 测试对象

  • WebAgGrid 和 WebUIGrid 对象
  • WebXML 测试对象

  • 浏览器方法

    注: 在 CEF 应用程序上,不支持以下浏览器方法: 

    OpenNewTabCloseClearCacheDeleteCookiesCloseAllTabsFullScreenMaximizeMinimizeDialogExistsHandleDialog、Quit、Restore

    只有在运行测试时才支持所有其他浏览器方法。

检查点

仅支持标准、位图和文本/文本区域检查点。

录制

录制时,如果在页面完全加载后显示页面导航脚本,而您继续直接录制,则脚本中可能会出现错误。

为确保正确录制没有错误的脚本,请等待导航步骤完全录制后再继续。

如果未录制您的导航步骤,请手动添加。

侦测

仅限 Electron:

在具有相同大小和标题的两个 Electron 窗口中进行侦测时,请在侦测和添加对象之前调整其中一个窗口的大小。

这使得 OpenText Functional Testing 能够唯一地标识每个窗口。

突出显示应用程序中的对象

使用基于 Web 扩展性的测试对象 (包括 OpenText Functional Testing 的 Web 2.0 插件测试对象),突出显示并不总是突出显示预期区域。

仅 Electron 对象

OpenText Functional Testing 仅在沙盒模式下运行时,才支持 Electron 框架中的应用程序。

例如,使用 --enable-sandbox 命令启动您的应用程序。

仅限 CEF 对象

要使 OpenText Functional Testing 能够识别 CEF 应用程序中的对象:

默认情况下,OpenText Functional Testing 要求应用程序的 Web 元素容器的 Windows 类名Chrome_WidgetWin 开头。

要支持不以 Chrome_WidgetWin 开头的情况: 修改 HKEY_CURRENT_USER\Software\Mercury Interactive\QuickTest Professional\MicTest\Packages\WebPackage\Settings\CEFWindowClassPrefix 注册表项值。输入在应用程序的 Web 元素容器中使用的 Windows 类名前缀

备注: 出于向后兼容性考虑,一些注册表项特意包括了以前的公司品牌。

OpenText Functional Testing 的本地化版本

使用 OpenText Functional Testing 的本地化版本时,通过 localhost 连接到包含 CEF、Electron 或 JxBrowser 对象的应用程序可能会出错。

在这种情况下,请改用 IP 地址 127.0.0.1

仅 Microsoft Edge WebView2

Microsoft Edge WebView2 不会启用自动播放音频和视频文件。因此,当您第一次在 Microsoft Edge WebView2 应用程序上运行 WebAudio.PlayWebVideo.Play 方法时,这些方法不起作用。

变通方法: 在运行 WebAudio.PlayWebVideo.Play 方法之前,首先在应用程序中手动播放音频或视频文件。

手动结束进程

在以下情况下,您可能需要手动结束 WebDriverHost.exechromedriver.exemsedgedriver.exe 进程:

  • 如果 OpenText Functional Testing 连接到错误的端口

  • 如果应用程序未正确关闭。

在这些情况下,您必须手动结束这些进程,以避免在使用 CEF/Electron/JxBrowser/NW.js/Microsoft Edge WebView2 应用程序时出现意外行为。

提示: 将 WebUtil.DetachRemoteDebugging 方法添加到您的测试中,以在测试过程中结束这些进程。使用应用程序的 IP 地址和端口定义方法。

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

返回页首

测试无头浏览器

在处理 Headless Chrome 时,OpenText Functional Testing 存在下面的已知问题。

支持的 Chrome 版本 Headless Chrome 仅在 Chrome 60 或更高版本中受支持。
录制 不支持在 Headless Chrome 上录制。
数据驱动 如果您对测试进行数据驱动,建议您在每个迭代的末尾添加 Browser.CloseAllTabs 方法,以防止测试运行失败。

运行 Web 测试时不受支持的测试对象和方法

在无头浏览器中运行 Web 测试时不支持以下测试对象和方法:

  • WebAgGridUIGrid 对象

  • Browser.MaximizeBrowser.Minimize 方法

  • about://* 页面

  • iFrame 或跨域 iFrame 对象

  • 与多个选项卡相关的操作。

  • 使用 Web 2.0 技术 (ASAP .NET AJAX、Dojo、Google Web Tools、jQueryUI、SiebelOpenUI 和 YahooUI) 创建的对象

  • Browser.ClearCache

  • Browser.DeleteCookies

  • Browser.HandleDialog

  • Browser.Home

  • Browser.IsSiblingTab

  • Browser.Object

  • Browser.Stop

  • ViewLink

  • WebFile

运行使用 AI 对象标识的步骤时不支持的方法

在 Headless Chrome 中运行使用 AI 对象标识的步骤时,不支持以下方法和语法:

  • AIUtil.Context.SetBrowserScope BrowserWindow

  • 如果 OpenText Functional Testing 将对象标识为 WebList,并且对象的设计不基于 HTML Select 元素,则支持 AIUtil("combobox").Select

其他无头浏览器不支持基于 AI 的测试。

回放类型

不支持“鼠标”回放类型。请改用“事件”回放类型。

运行测试 不支持维护运行模式。

返回页首

另请参见: