已知问题 - Google Chrome、Microsoft Edge 和 Mozilla Firefox
本主题介绍使用 Chrome、Edge 和 Firefox 浏览器时存在的已知问题。
备注: 本主题针对 Microsoft Edge 79 或更高版本。这是基于 Chromium 的 Microsoft Edge,它取代了基于 HTML 的 Microsoft Edge 旧版。
扩展安装
要支持 UFT One 测试,必须在浏览器中安装并启用 OpenText UFT Agent。安装 UFT One 通常还涉及到浏览器扩展的设置。但是,有时需要人工干预。
此部分介绍如何安装浏览器扩展以及如何允许、修复和删除其安装。
手动启用扩展
在以下情况下,您必须手动启用适用于 Chrome/Edge 的 OpenText UFT Agent 扩展:
-
未连接 Internet。
-
尚未启用 Chrome 或 Edge 的自动更新。
有关更多详细信息,请参阅在 Google Chrome 上启用 OpenText UFT Agent 扩展以及在 Microsoft Edge 中启用 OpenText UFT Agent 扩展。
要安装浏览器扩展,浏览器策略必须允许此扩展。要自动更新浏览器策略,您可以在 UFT One 安装过程中选择“设置选项 Chrome、Chromium Edge、Firefox 选项”。否则,您需要手动更新浏览器策略以允许安装 OpenText UFT Agent:
警告: 确保公司的安全策略允许您进行此更改。
-
将适用于 Chrome 的 OpenText UFT Agent 扩展添加到允许的扩展列表中。有关详细信息,请参阅 https://cloud.google.com/docs/chrome-enterprise/policies/?policy=ExtensionInstallAllowlist。
扩展 ID 为:
UFT One 24.2 dajdcgfjhnjifmaamkajfmpoplhafcfb
UFT One 23.4 njkcecfgjklpakiaknffokgoafimlggp
-
将 UFT One 添加到允许与扩展进行通信的应用程序列表。有关详细信息,请参阅 https://cloud.google.com/docs/chrome-enterprise/policies/?policy=NativeMessagingAllowlist。
要添加的应用程序是:
com.hp.uft.nativemessaginghost
要启用此通信,还需要启用 NativeMessagingUserLevelHosts 选项。有关详细信息,请参阅 https://cloud.google.com/docs/chrome-enterprise/policies/?policy=NativeMessagingUserLevelHosts。
-
将适用于 Edge 的 OpenText UFT Agent 扩展添加到允许的扩展列表中。有关详细信息,请参阅 https://docs.microsoft.com/en-us/deployedge/microsoft-edge-policies#extensioninstallallowlist。
扩展 ID 为:
UFT One 24.2 kjlpnmkpdjimoabgdacgpojdjbcdooig
UFT One 23.4 niefiagpjodjbabljbillefnehgbpnna
-
将 UFT One 添加到允许与扩展进行通信的应用程序列表。有关详细信息,请参阅 https://docs.microsoft.com/en-us/deployedge/microsoft-edge-policies#nativemessagingallowlist。
要添加的应用程序是:
com.hp.uft.nativemessaginghost
要启用此通信,还需要启用 NativeMessagingUserLevelHosts 选项。有关详细信息,请参阅 https://docs.microsoft.com/en-us/deployedge/microsoft-edge-policies#nativemessaginguserlevelhosts。
将 OpenText UFT Agent Firefox 扩展添加到要安装的扩展列表中。有关详细信息,请参阅 https://github.com/mozilla/policy-templates/blob/master/README.md#extensionsettings。
为此扩展添加的路径是: <UFT One 安装文件夹>\Installations\Firefox\WebExtension.xpi
。
已安装的扩展存在的问题
此部分介绍如何处理使用解压缩的 OpenText UFT Agent 扩展时在 Chrome 或 Edge 浏览器中不时出现的问题。这是您使用“加载已解压缩的扩展”按钮手动加载的扩展版本,或者 UFT One 每次打开浏览器时临时加载的扩展版本。有关详细信息,请参阅在 Google Chrome 上启用 OpenText UFT Agent 扩展和在 Microsoft Edge 旧版上启用 Edge Agent for UFT。
问题: OpenText UFT Agent 扩展先前已安装,但不再显示在扩展列表中。
或者,您安装了该扩展,但它未显示在扩展列表中。
解决方案:请执行以下步骤之一,然后重新加载该扩展:
-
如果相关,请注销浏览器用户配置文件,然后再次重新登录。
-
手动删除浏览器的 User Data 文件夹,然后重新打开浏览器。
Chrome: 删除 %LOCALAPPDATA%\Google\Chrome\User Data
Edge: 删除 %LOCALAPPDATA%\Microsoft\Edge\User Data
-
创建并运行自动脚本以删除浏览器的 User Data 文件夹。然后,重新打开浏览器。
手动删除扩展
在以下情况下,您可能需要从 Firefox 中手动删除未使用的扩展:
-
卸载 UFT One 后未删除 Firefox 扩展。
-
升级 UFT One 后,旧扩展保留在 Firefox 中。
ValueEdge 功能测试设计
ValueEdge 功能测试设计 (FT 设计) 还使用 OpenText UFT Agent来测试 Web 应用程序。FT 设计与 UFT One 都安装自己的扩展版本,并且每个程序都要求其版本是唯一启用的版本。
在还使用 FT 设计的计算机上使用 UFT One 之前,确保启用的扩展版本与您的 UFT One 版本相匹配。
常规
此部分包括使用 Chrome、Edge 或 Firefox 时存在的一般限制:
所有浏览器共有的常见问题
页面上的 JavaScript |
修改了浏览器 JavaScript 功能的网页可能会导致 UFT One 行为异常。 例如,这包括替换 JSON 对象的网页。 |
链接字体和颜色 |
在不同浏览器中,链接对象的字体和颜色属性包含不同值。 因此,如果在 Microsoft Internet Explorer 中创建标准检查点,并选择“字体”和“颜色”属性,则在 Chrome、Edge 和 Firefox 中运行这些检查点可能会导致检查点失败。 |
Web 扩展性 |
如果您有使用 Web 扩展性设计的自定义工具包,则 UFT One 无法处理浏览器上的某些事件。 |
使用 Chrome 或 Edge 时存在的问题
Chrome/Edge 用户 |
如果定义了多个 Chrome 或 Edge 用户,则必须删除所有用户。 |
同时使用多个 Chrome 版本 | UFT One 无法在同一会话中同时在 Chrome 发布版本和 Chrome 测试版上录制或运行测试。 |
使用 Firefox 时的问题
其他 Firefox 插件和插件管理器 |
|
已启用用户帐户控制 |
如果您正在使用的计算机的 UAC (用户帐户控制) 选项设置为“打开”,UFT One 将不支持在安装 UFT One 之后安装 (或升级到新版本) 的 Firefox 浏览器上进行测试。 变通方法: 在上述环境中安装 Firefox 后,以管理员身份登录并打开 UFT One。 这使 UFT One 能够安装 Firefox 支持所需的文件。 |
匿名内容元素 |
UFT One 不支持 Firefox 非 XUL 框架中的匿名内容元素。(例如,Firefox SSL 异常页中的按钮。) |
特权 URL |
如果您正在 Firefox 57 或更高版本上进行测试,则 Firefox 的限制会阻止您导航到特权 URL。 如果您的测试步骤在 Firefox 中导航到特权 URL,UFT One 将显示错误。然后,您可以停止、跳过或编辑并重试您的步骤。 有关更多详细信息,请参阅 MDN Web 文档。 |
多个浏览器窗口 |
如果您打开多个 Firefox 窗口并将它们全部最大化,则 UFT One 无法侦测任何窗口中的对象。 |
录制
此部分列出了您在 Chrome、Edge 和 Firefox 中录制时可能遇到的已知问题:
先决条件 |
只有完全加载页面后,才能在 Chrome、Edge 和 Firefox 中进行录制。 |
录制时不支持的方法和功能 |
|
其他步骤的疑难解答 |
录制步骤时,可能会录制其他步骤。 变通方法: 录制会话结束后,手动删除无关步骤。 |
CloseAllTabs 方法 |
在 Firefox 57 及更高版本、Chrome 63 及更高版本或 Edge 79 及更高版本中进行录制时,不会录制关闭浏览器的最后一个选项卡或窗口中的所有浏览器选项卡的步骤。 |
If 处理程序选项 |
仅当将处理程序分配为属性时,“Web 事件录制配置”对话框中的“If 处理程序”选项才能发挥作用。例如,<A onclick = "some code"/>。 如果将处理程序分配为属性,则 If Handler 选项不起作用。例如,aObj.onclick = function() {some code}. |
录制坐标 |
如果在“选项”对话框的“Web”>“高级”窗格 (“工具”>“选项”>“GUI 测试”选项卡 >“Web”>“高级”>“录制设置”部分) 中已选中“录制坐标”选项,则 UFT One 不会录制图像上的正确坐标。 变通方法: 在录制后手动添加图像的正确坐标。 |
WebRange.Set 方法 |
第一次在浏览器上录制 WebRange.Set 步骤时,UFT One 无法正确录制。 变通方法: 尝试再次录制该步骤。 |
测试对象、检查点、方法和属性
此部分列出了有关测试对象、检查点、对象方法和属性的已知问题。
所有浏览器共有的常见问题
对加载网页后加载的对象运行操作 |
有时,当您使用 SystemUtil.Run 或 Webutil.LaunchBrowser 打开浏览器时,页面会加载,但是页面上的操作会失败。例如,WebTable.SelectCell 方法可能无法选择单元格。 可能的原因: 加载页面后,站点将继续加载数据,并且执行的操作需要未就绪的对象。 变通方法: 使用“录制和运行设置”或使用包含指向页面上特定对象的 URL 的 SystemUtil.Run 打开浏览器。 例如:
|
编辑框 |
“对象侦测器”和“检查点属性”对话框不检索对话框中编辑框的当前值。 |
搜索工具栏或 Developer Tools 窗格 |
|
检查点 |
在 AgGrid 对象上创建或运行检查点时,请最大化浏览器以避免意外行为。 |
拖放方法 |
在以 HTML5 以外的语言编码的网页上录制测试时,只能在 Internet Explorer 中录制拖放方法。 |
运行 WebAudio.Play 和 WebVideo.Play 方法 |
默认情况下,Chrome、Edge 和 Firefox 未启用自动播放音频和视频文件的功能。WebAudio.Play 和 WebVideo.Play 步骤可能会成功运行,但不会执行实际操作。 要允许运行 WebAudio.Play 和 WebVideo.Play 方法,请执行以下步骤: 配置浏览器以允许自动播放音频和视频文件。尝试以下选项或在线检查相关浏览器设置:
|
属性值 |
使用 Chrome、Edge 或 Firefox 时,innertext、outertext、innerhtml 和 outerhtml 属性值可能不同于其他浏览器。 因此,在参数中使用这些值或运行使用这些属性值的检查点可能会导致步骤失败。 |
Shadow DOM |
|
Web 文件 |
在 Chrome、Edge 或 Firefox 中侦测 Web 文件时,您将获得 Web 文件值属性的假路径。 |
hwnd 属性 |
使用 Chrome、Edge 或 Firefox (57 及更高版本) 时,不支持 hwnd 属性。 |
使用 Chrome 时的问题
Browser.Navigate |
如果您使用的是最新的 OpenText UFT Agent扩展 (可在 Chrome Web Store 或 UFT One 安装文件夹>\Installations\Chrome\v3 文件夹中找到),您可能会遇到以下问题: 如果您在 Chrome 中运行 Browser.Navigate 方法,则仅支持 Headers 参数的默认值。 如何判断我是否使用了相关的扩展: 导航到 chrome://extensions/ 页面,然后在 OpenText UFT Agent扩展上单击“详细信息”。扩展的“检查”视图为服务工作程序。 变通方法: 卸载现有扩展,按照手动安装扩展中的安装说明从“<UFT One 安装文件夹>\Installations\Chrome\v2”安装 Chrome 扩展。 |
使用 Firefox 时的问题
通过 HTML 对象加载的网页 | UFT One 无法准确标识通过 HTML 对象的 data 属性加载的网页上的 Web 对象。此类网页上的对象被标识为 WebElement 对象。 |
RunScript 方法 |
在 Firefox 浏览器上使用 RunScript 方法时,应在运行测试之前禁用内容安全策略:
|
使用 Edge 时存在的问题
对象标识中心 (OIC) - 高亮显示对象 |
在启用侧栏的 Edge 中工作: 如果垂直选项卡显示在左侧,则 OIC 高亮显示的对象区域会发生偏移。 |
Browser.Close 方法 |
如果 Edge 窗口包含一个或多个空白选项卡,在关闭浏览器窗口时,建议使用 CloseAllTabs 方法而不是 Browser.Close 方法。 |
不支持的测试对象、方法和功能
在 Chrome、Edge 或 Firefox 中,不支持以下测试对象、方法和其他特定于 Web 的功能:
测试对象 |
|
方法 |
|
功能 |
本地系统监控 |
Edge 中的 IE 模式
此部分列出了在 Edge 中使用 IE 模式时可能遇到的已知问题:
Browser.Back 方法 |
有时,如果上一步导致页面重定向,则可能不会执行 Browser.Back 步骤。 变通方法: 在这两个步骤之间添加 Wait 语句。 示例:
Wait 2 Browser("Advantage Shopping").Back |
侦测和录制 |
|
对话框
常规
Chrome、Edge 和 Firefox 使用的标准对话框与 Microsoft Internet Explorer 使用的 Windows 标准对话框不同。
由于标准对话框存在的差异,使用“单击带有以下标签的按钮”恢复操作且为 Microsoft Internet Explorer 构建的弹出式恢复场景不可用于 Chrome、Edge 和 Firefox,反之亦然。
警报、确认和提示对话框
您无法侦测浏览器打开的“警报”、“确认”和“提示”对话框,但可以在其上录制和运行脚本。
如果在此类对话框上创建步骤,请使用 Browser.DialogExists、Browser.HandleDialog 和 Browser.GetDialogText 方法来自动化对话框行为。请参阅以下示例:
Example: 以下示例验证浏览器对话框是否存在。如果对话框确实存在,它会检索显示的消息,单击“确定”按钮,然后关闭对话框。
Browser("Example").Page("Buttons").WebButton("Pop up!").Click
While Browser("Example").DialogExists = false
wait 2
Wend
txt = Browser("Example").GetDialogText
If txt = "expected value" Then
Browser("Example").HandleDialog micOK
End If
在以下情况下,HandleDialog、GetDialogText 和 DialogExist 方法可能会产生意外结果:
- 如果您在测试运行之外手动打开对话框
- 如果在测试运行期间手动关闭对话框
对于其他类型的对话框 (例如“身份验证”、“安全警报”和“证书”对话框),请使用 UIA 插件或 UFT One 中的 AI 对象检测来处理它们。
从跨源框架打开的对话框
Firefox 69 或更高版本: 不支持由跨源框架内的元素触发的对话框。
使用严格的内容安全策略 (CSP) 测试应用程序
要测试 Web 应用程序,UFT One 必须与应用程序通信,包括 JavaScript 注入。但是,如果您使用的是最新的 OpenText UFT Agent扩展 (可在 Chrome Web Store 或 UFT One 安装文件夹>\Installations\Chrome\v3 文件夹中找到),某些应用程序会阻止此功能。
如何判断我是否使用了相关的扩展: 导航到 chrome://extensions/ 页面,然后在 OpenText UFT Agent扩展上单击“详细信息”。扩展的“检查”视图为服务工作程序。
如果您在测试安全应用程序时遇到问题,您可以调整浏览器策略以允许扩展与应用程序通信。
警告: 确保公司的安全策略允许您进行更改。
在具有 Internet 连接的 Chrome 上测试安全应用程序
-
在注册表编辑器中,导航到 Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Google\Chrome。
-
创建一个名为 ExtensionInstallForcelist 的键。
-
在 HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Google\Chrome\ExtensionInstallForcelist 中,添加一个名为 1 的新字符串值。
-
使用在浏览器策略中启用扩展安装中列出的扩展 ID 填充值 1。
您可以在 chrome://policy 页面上检查添加的策略是否已启用。
在没有 Internet 连接的 Chrome 上测试安全应用程序
-
创建一个名为 updates.xml 的文件,在文件中添加如下内容,并将文件保存在“<UFT One 安装文件夹>/Installations/Chrome/v3”路径下。
Copy code<?xml version='1.0' encoding='UTF-8'?>
<gupdate xmlns='http://www.google.com/update2/response' protocol='2.0'>
<app appid='<extension ID>'>
<updatecheck codebase='file:///<UFT One installation folder>/Installations/Chrome/v3/Agent.crx' version='extension version number' />
</app>
</gupdate>备注: 将“<UFT One 安装文件夹>”和“扩展版本号”替换为实际值。
使用在浏览器策略中启用扩展安装中列出的扩展 ID。
您可以通过检查您在 chrome://extensions 页面上安装的扩展来获取扩展版本号。
-
在注册表编辑器中,导航到 Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Google\Chrome。
-
创建一个名为 ExtensionInstallForcelist 的键。
-
在 HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Google\Chrome\ExtensionInstallForcelist 中,添加一个名为 1 的新字符串值。
-
使用 <扩展 ID>;file:///<UFT One 安装文件夹>/Installations/Chrome/v3/updates.xml 填充值 1。
您可以在 chrome://policy 页面上检查添加的策略是否已启用。
另请参见: