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

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

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

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

不支持的功能

使用 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 窗口中进行侦测时,请在侦测和添加对象之前调整其中一个窗口的大小。

这使得 UFT One 能够唯一地标识每个窗口。

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

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

仅 Electron 对象

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

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

仅限 CEF 对象

要使 UFT One 能够识别 CEF 应用程序中的对象:

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

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

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

UFT One 的本地化版本

使用 UFT One 的本地化版本时,通过 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 进程:

  • 如果 UFT One 连接到错误的端口

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

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

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

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

返回页首

测试无头浏览器

使用 PhantomJS 和 Headless Chrome 时,UFT One 存在以下已知问题。

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

使用 PhantomJS 应用程序时,不支持以下功能和对象:

  • 录制

  • 对象侦测器

  • 在应用程序中高亮显示

  • 导航并识别

  • 对象侦测器中的“将对象添加到本地”按钮

  • 拖放功能

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

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

仅限 Headlesss Chrome:

  • WebAgGridUIGrid 对象

  • Browser.MaximizeBrowser.Minimize 方法

仅限 PhantomJS:

  • 当使用包含大页面源代码的 CaptureBitmap 方法运行测试时,会引发一般运行错误。

  • 浏览器对话框,例如“警报”、“确认”或“提示”对话框

  • role=link 属性创建的 Link 对象

  • WebAudio

  • role=button 属性创建的 WebButton

  • role = list 属性创建的 WebList

  • WebMenu

  • 使用 role=tablerole=grid 属性创建的 WebTable

  • WebTabStrip

  • WebTree

  • WebVideo

PhantomJS/Headless Chrome:

  • 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 对象标识的步骤时,不支持以下方法和语法:

  • Hover

  • ScrollOnObject

  • Scroll

  • 双击

  • RightClick

  • LongClick

  • AIUtil.Context.SetBrowserScope BrowserWindow

  • 仅当 UFT One 可以将对象标识为 WebList 时,AIUtil("combobox").Select 才受支持。

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

回放类型

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

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

返回页首

另请参见: