已知问题 - 编辑 GUI 测试

相关项: GUI 测试和组件

本主题介绍编辑 GUI 测试时的已知问题。

侦测

对象侦测器中的悬停模式

比较 对象侦测器的“比较”功能用于禁用悬停模式。这意味着,如果使用悬停模式进行侦测,然后单击“比较”,则必须通过单击来侦测第二个对象。
取消

不支持在悬停模式下取消侦测。

侦测时置顶

在悬停模式下,对象侦测器不支持“侦测时置顶”

逻辑名称定义 在悬停模式下侦测时,不使用对象标识对话框中定义的“逻辑名称定义”。

仅对象标识中心

检查缩放级别

使用 Internet Explorer、Chromium Edge 中的 IE 模式或 JavaFX 控件时: 

如果 UFT One 无法在正确位置识别对象,请检查您是否正在以 100% 视图查看页面,而没有进行放大或缩小。

例如,如果您以 90% 或 120% 查看页面,则您会被要求单击或选择实际对象左侧或右侧的某个区域,以便识别该对象。

图像识别和文本测试对象 OIC 不支持图像识别和文本测试对象。
验证
  • 当多个 SAPGUI 对象与描述匹配时,验证无法正常工作。

  • UIA Pro 对象不支持验证。

悬停模式

在悬停模式下侦测的对象无法添加到具有正确层次结构和属性的对象存储库或测试编辑器。

变通方法: 使用 OIC 中的正常模式或使用对象侦测器。

远程对象侦测器

使用 OIC 中的远程对象侦测器时,已知存在以下问题:

  • 使用 OIC 中的远程对象侦测器时不支持悬停模式。

  • 远程对象侦测器模式不支持 AI 自动检查。

  • 有时,如果您在侦测对象一段时间后尝试添加对象,OIC 无法将对象添加到对象存储库。

    变通方法: 再次侦测对象,并在侦测后立即将对象添加到对象存储库。

多对象侦测器会话中的 AI 对象 在多对象侦测器模式下,建议的相同 AI 对象将显示在所有对象的 OIC“编辑”视图中。这是您侦测的最后一个对象的 AI 对象。
在非英语 UFT One 安装中工作时

“对象标识中心”窗格中的某些 UI 元素是用英语进行硬编码的,未进行翻译。

对象侦测器或对象标识中心

AI 检查/突出显示 如果 Firebox 浏览器底部有状态栏,则在对象侦测器或 OIC 中使用 AI 检查或突出显示功能时,UFT One 可能无法获得测试对象的正确位置。
不能通过点击来侦测 UFT One 仅在使用鼠标时才支持侦测基于 Web 的应用程序。

侦测 SAP 应用程序

(UFT One 版本 2022 及更高版本)

当您使用 Chrome 商店或“<UFT One 安装文件夹>\Installations\Chrome\v3”文件夹中提供的最新扩展时,可能会遇到以下问题:

有时,如果您在侦测对象一段时间后尝试高亮显示对象或将对象添加到对象存储库中,对象侦测器或 OIC 可能无法执行此操作。

如何判断我是否使用了相关的扩展: 导航到 chrome://extensions/ 页面,然后在您安装的扩展上单击“详细信息”。扩展的“检查”视图为服务工作程序

变通方法: 再次侦测对象,并在侦测后立即执行操作

返回页首

AI 标识

AI 检查窗口

在某些情况下,当使用 AI 检查在 Internet Explorer 上检查 Web 应用程序时,UFT One 将该应用程序视为空白的黑页。

变通方法: 

等待网页完全加载,然后在“AI 检查”视图上单击“刷新”

包含的对象
  • UFT One 2022 版及更高版本: 使用远程 AI 对象检测服务时未标识表单元格。

  • UFT One 2021 及更早版本: 在“AI 检查”窗口中,无法添加与表或日历容器内对象描述的关系。

双显示器

仅在主显示器上支持基于 AI 的对象标识。因此,如果在使用双显示器时使用 AI 功能,请确保 AI 窗口和应用程序均在主显示器上可见。

这在检查应用程序、录制流和运行测试时相关。

SAP GUI for Windows 应用程序

UFT One 版本 2022 及更高版本

在某些情况下,当您打开“容器”以检查 SAP GUI 应用程序页面上的表时,“AI 检查”窗口会报告错误。

可能的原因:

“AI 检查”窗口获取对象标识结果的会话超时。

变通方法:

  • 确保您使用的是默认 AI OCR。

  • 将以下行添加到 %LocalAppData%\Learn Tool\Preferences\LearnToolSettings.json 文件:

    "commandTimeout": value

    将超时时长设置为大于 60000 毫秒 (默认值) 的值。

返回页首

录制

描述属性 UFT One 不录制可视关系标识符属性。

此属性只能从“对象属性”对话框或“对象存储库管理器”窗口中手动添加。

开始菜单 / 快速启动面板
  • Windows 7: 安装后必须重新启动计算机才能在“开始”菜单或“快速启动”面板上进行录制。

  • UFT One 不录制从开始菜单启动 Windows 帮助的操作。

  • 要录制以菜单形式自定义的“开始”菜单项,请改为以链接形式自定义这些菜单项,或者以其他方式录制它们的激活。

对应用程序对象的访问受限 UFT One 如果只能以受限的方式访问您正在测试的应用程序的进程,那么不能录制或运行步骤。

变通方法:

  • 确保您正在测试的应用程序与 UFT One 由同一 Windows 用户启动。

  • 确保您或受测试应用程序都不主动阻止 UFT One 访问应用程序进程。

录制会话期间应用程序中的更改

录制期间,如果窗口的标题发生了更改,那么运行测试或组件时,UFT One 可能无法识别该窗口中的对象。

变通方法: 在“对象存储库”窗口中,从窗口的测试对象描述中删除文本属性。

录制图像识别对象

在图像识别录制会话期间,如果执行用来移动应用程序窗口的操作,则会录制意外的父对象。该步骤中使用的父对象是执行操作后位于单击位置的对象。

示例:如果您录制计算器应用程序上的最小化操作,则计算器将关闭,并以桌面窗口作为父窗口来录制该步骤:

Window("calculator").InsightObject("").Click
Window("calculator").InsightObject("").Click
Window("calculator").InsightObject("").Click
Window("Program Manager").InsightObject("").Click

变通方法: 如果所录制步骤的图像在父对象中是唯一的,则该步骤仍然可以成功运行。否则,您可以将对象手动移到对象存储库中的正确父对象下并调整步骤。

在远程 Windows 10 或 11 计算机上录制图像识别对象

在远程 Windows 10 或 11 计算机上启动图像识别录制会话时,鼠标光标可能会在应用程序屏幕上来回跳动。

变通方法:

  1. 使用管理特权启动 gpedit.msc。
  2. 在“本地组策略编辑器”中,导航到以下路径,并将“为远程桌面连接使用 WDDW 图形显示驱动程序”策略设置为“已禁用”:

    “本地计算机策略”->“计算机配置”->“管理模板”->“Windows 组件”->“远程桌面服务”->“远程桌面会话主机”->“远程会话环境”

录制下一个图像识别对象

在某些应用程序中,在您执行将打开窗口的操作并成功录制一个图像识别对象后,当您继续在窗口上录制另一个图像识别对象时,该窗口会立即关闭。

变通方法: 完成第一个图像识别对象的录制后,在对象存储库中添加对象的 skipmakeobjvisible 属性,并将值设置为 True

返回页首

操作

操作中的测试名称

如果一个测试包括对其他测试中存储的操作的调用,且该其他测试在 ALM 中进行了重命名,则原始测试名称仍会 (前后加方括号) 显示在画布中。

画布中过时的名称不会影响 UFT One 查找和运行操作。

如果显示正确测试名称对您而言很重要,请从测试中删除操作调用,然后再重新插入。

嵌套操作

无法将新操作作为嵌套操作添加到外部操作中。

请改为打开外部操作,并直接添加对嵌套操作的调用。

测试副本

如果您复制现有测试,则不能在同一测试的两个测试中插入对并行操作的调用。

请使用“另存为”创建测试的复本,而不是复制测试。

返回页首

关键字视图

对象属性

如果在“关键字视图”的步骤中使用 Object 属性,UFT One 可能需要较长时间来从应用程序中检索对象信息。

从步骤中的各种下拉列表打开和选择时,这可能会影响 UFT One 的响应时间。

如果出现这种情况,请在处理 Object 属性时使用编辑器。

对其他操作的调用

如果您插入对另一个操作的调用,则无法展开操作节点来查看被调用操作中的步骤。

请改为双击调用的操作节点以在另一个选项卡中打开操作步骤。

字符串到整数

当参数定义为变量时,关键字视图有时会以字符串形式插入值。

要提供整数参数,请在创建步骤后手动从值中删除引号。

在某些情况下,这是必要的,例如对于 DevExpress Data Grids 的 row 参数。

有关所需参数类型的详细信息,请参阅用于 GUI 测试的 UFT One 对象模型参考

返回页首

恢复场景

如果在相同恢复场景中指定来自不同位置的具有相同名称的多个函数库,则仅使用第一个函数库。

变通方法: 重命名函数库,以便每个函数库的名称唯一。

返回页首

对象存储库

  • 如果修改对象存储库中测试对象的名称时测试或组件脚本含有语法错误,则测试或组件步骤中不会正确更新新名称。

    变通方法: 清除重命名测试对象时自动更新测试步骤和组件步骤复选框(工具>选项> GUI 测试选项卡>常规节点)并在步骤中手动进行重命名(推荐),或解决语法错误,然后在 UFT One 中关闭并重新打开文档,以在步骤中显示重命名的对象。

  • 对于操作: 如果对包含操作参数的对象存储库使用“导出并替换本地对象”选项,则创建的存储库参数会映射到测试参数而不是操作参数。

    变通方法: 在导出的对象存储库中手动调整映射。

  • 只要测试对象未存在于与操作或组件关联的共享对象存储库中,您就可以将该测试对象添加到本地对象存储库。如果测试对象已经存在于关联的共享对象存储库中,则可以使用复制到本地选项将其添加到本地对象存储库。有关详细信息,请参阅共享对象存储库中对象的本地副本

  • 无法使用“对象存储库”窗口中的将对象添加到本地按钮或对象存储库管理器中的添加对象按钮直接将 WinMenu 对象添加到对象存储库。要将 WinMenu 对象添加到对象存储库,请使用“添加对象”或“将对象添加到本地”按钮添加其父对象,然后选择将父对象与其子对象一起添加;或者录制 WinMenu 对象上的步骤,然后删除录制的步骤。

返回页首

检查点和输出值

可访问性检查点

ALM 中,只有当在 ALM 计算机上安装了 UFT OneUFT One Add-in for ALM 时,才能在资产比较工具中查看可访问性检查点的比较。

位图检查点

包含文本的对象上的位图检查点在以下情况下可能会失败: 使用远程桌面连接进行创建,然后在本地运行,或者在本地创建,然后使用远程桌面连接运行检查点步骤。在运行结果中,单击位图检查点结果中的查看差异时显示的图像会显示部分文本形状。

变通方法: 启用远程桌面连接应用程序中的字体平滑选项。

数据库检查点
  • 捕获的值的格式随指定系统设置而变化。例如,日期和时间值可能设为不同格式。

    变通方法: 如果运行测试或脚本化组件的系统不同于之前录制测试的系统,请确认两个系统使用相同的格式设置。

  • 当在一台计算机上创建数据库检查点,而想要在其他计算机上运行检查点时,应该在两台计算机上安装相同的 ODBC 驱动程序。
  • 在数据库查询向导中,如果计算机上安装了 Power Query,则不能选择使用 Microsoft Query 创建数据库检查点或输出值,请改为选择“手动指定 SQL 语句”选项。
文件内容检查点
  • 由第三方 JavaScript 代码动态生成的 htm/html 文件的文件内容检查点不受支持。

  • 创建文件内容检查点时,UFT One 将从接受测试的应用程序中收集信息。这有时可能需要两分钟的时间。

文件内容输出值 创建文件内容输出值时,不支持在数据表参数名称中使用空格。
XML 检查点
  • 在包括 > 作为值的 XML 文件上执行 XML 检查点时,可能会出现错误消息。

  • 将新值节点添加到 XML 节点时,在某些情况下新值可能不显示。

    变通方法: 关闭“以文本方式编辑 XML”对话框,然后重新打开它以正确显示新值节点。

  • 在无法加载的文件上或格式不正确的文件上插入 XML 文件检查点时,可能会出现错误消息。

  • 创建和运行 XML 大文档的 XML 检查点可能需要几分钟时间。

  • 在运行用来对照内部引用的架构验证 XML 的 XML 检查点之后,HTML 报告中的步骤状态和步骤描述可能会报告发生冲突的状态。如果任一项报告失败,就表明检查点失败。有关失败的更多详细信息,请在 Run Results Viewer 中查看测试结果。

使用ALM ALM 中,无法创建、编辑或重命名关键字 GUI 组件的检查点。

返回页首

Windows 显示缩放 (DPI)

备注:  

使用非 100% 的 Windows 缩放设置可能会导致 UFT One 无法标识位于应用程序正确位置的对象。例如,在侦测、突出显示或识别对象时可能会遇到差异。

为避免错误,请将 Windows 设置设为以 100% 比例显示所有文本和应用程序。

例如:

  • 在 Windows 7 上,浏览到“控制面板\外观和个性化\显示”,然后选择“较小 - 100% (默认)”
  • 在 Windows 10 或 11 上,浏览到“控制面板\外观和个性化\显示”,然后单击“设置自定义缩放级别”。然后从下拉列表中选择“100%”。

返回页首

使用语句完成功能

语句完成不适用于以下代码类型:

  • 变量。例如:

    Set x = CreateObject("Application.Excel")
    x 
  • 类方法。例如:

    class fooClass
    publicfunctionfoo
    sin(45)
    end function
    End Class
    Set x = New fooClass
    x

返回页首

文本测试对象

修改测试对象描述

当您修改文本测试对象的图像时,UFT One 使用 OCR 从图像中提取文本并相应地更新 text 属性。

但是,如果您手动修改 text 属性的值,测试对象图像不会进行更新。text 属性的新值将用于对象标识。

多行文本

文本测试对象仅支持单行文本。

如果在识别文本对象时选择包含多行文本的图像,则仅为第一行创建测试对象。

返回页首