已知问题 - 基于 Windows 的 SAP
本主题包含有关测试基于 Windows 的 SAP 应用程序的疑难解答和限制信息。
对象识别
工具栏控件
其他控件内的工具栏 |
不支持其他控件内的工具栏(如文本区域控件中的工具栏)。 |
网格控件内的工具栏 |
SapGuiToolbar 测试对象(GuiComponentType 为 204)支持网格控件内的工具栏。 但是,对象侦测器不能识别这些工具栏,因为它们是网格的一部分。 无法从活动屏幕使用添加到存储库中选项或“对象存储库”窗口中的添加对象选项将这些工具栏添加到对象存储库。 要将这些工具栏添加到对象存储库,请在这些工具栏上录制。 |
单独的工具栏控件 |
单独的工具栏控件 (不属于网格或其他对象的控件) 受 SapGuiToolbar 测试对象 (GuiComponentType 为 202) 支持,并且由于这些对象是单独对象,对象侦测器可识别它们。 注意,树控件没有关联的工具栏。树控件顶端显示的工具栏均被识别为单独工具栏,并因此受支持,如上所述。 |
SAP 编辑器
不支持 SAP 编辑器控件。
Microsoft Office 控件
不支持 SAP 窗口中的 Microsoft Office 控件。
SAP GUI for Windows 8.00
在 UFT One 版本 2023 及更高版本上受支持
要支持 64 位应用程序,请使用自动登录方法或录制和运行设置自动登录到应用程序,然后录制或侦测对象。
SAP GUI for Windows 中基于 Edge 的 HTML 控件
在 UFT One 版本 2023 及更高版本上受支持
如果您定义用于测试 WebView2 应用程序的环境变量,这些可能会覆盖 EdgeBrowserRemoteDebuggingPort (REG_DWORD) 注册表项。
此注册表项是测试设置为使用“Edge (基于 Chromium)”的嵌入式 HTML 控件所必需的。有关详细信息,请参阅使用特定浏览器控件选项时启用测试 HTML 控件。
测试对象和测试对象方法
调用现有操作/操作副本 |
如果插入对外部操作或操作副本的调用,并且该操作包含 SAPGuiTable.Input、SAPGuiGrid.Input 或 SAPGuiAPOGrid.Input 语句,则对应的输入数据表不会复制到该操作的“数据”窗格中。 变通方法: 插入并运行 Datatable.AddSheet 和 Datatable.ImportSheet 语句,以导入由操作的 Input 方法引用的表。 请确保数据表的名称与在对应 Input 语句中指定的名称完全匹配。 |
SAPGuiTextArea 对象 |
SAPGuiTextArea 对象不支持右键单击操作。 |
拖放操作 |
当 UFT One 打开时,SAP GUI for Windows 应用程序中的拖放操作将被禁用。 |
SAPGUIComboBox.Select |
以下步骤语法会导致脚本中出错: SAPGUIComboBox.Select “ ” 变通方法: 请改用 SAPGUIComboBox.SelectKey " "。 |
SAPGUIToolBar.SelectMenuItem |
SAP GUI 7.70 Patch 1: 运行 SAPGUIToolBar.SelectMenuItem 步骤会导致运行错误。 解决方案:升级到 SAP GUI 7.70 Patch 2 或更高版本。 |
SAPGuiGrid.SetCheckBox |
SAP GUI 7.60 Patch 10 或 11 或 7.70 Patch 1: 运行 SAPGUIToolBar.SelectMenuItem 步骤会导致运行错误。 解决方案:升级到 SAP GUI 7.60 Patch 12 或 7.70 Patch 2 或更高版本。 |
关闭连接或会话 |
SAP GUI 7.60 Patch 11 或 7.70 Patch 2: 运行 SAPGUIUtil.CloseConnections 和 SAPGUISession.Close 步骤会导致意外行为。 解决方案:升级到 SAP GUI 7.60 Patch 12 或 7.70 Patch 3 或更高版本。 |
SAPGuiTable 对象 | 如果无法将 SAPGuiTable 对象拉取到末尾,则使用 FindAllRowsByCellContent 的步骤将失败。 |
SAPGuiGrid 对象 |
要获取 SAPGuiGrid 对象的列标题,请在测试中添加以下测试步骤:
|
使用编程描述来描述 SAPGUI 测试对象 |
使用编程描述来描述脚本中的 SAPGUI 对象时,请确保将 GuiComponentType、micclass 或 type 属性添加到描述中以缩短对象标识时间并防止 UFT One 对错误的对象执行操作。 示例: SAPGuiSession("GuiComponentType:=12").SAPGuiWindow("micclass:=SAPGuiWindow").SAPGuiEdit("GuiComponentType:=32","enabled:=True","index:=0").Set "123"
SAPGuiSession("GuiComponentType:=12").SAPGuiWindow("GuiComponentType:=21").SAPGuiEdit("type:=GuiCTextField","index:=0").Set "321"
|
使用 SAPGuiUtil.AutoLogon 方法或“录制和运行设置”自动登录到 S/4HANA 服务器 |
如果装有 SAP GUI for Windows 7.70 Patch 2 或更高版本的 S/4HANA 服务器的登录页面隐藏了左上角的“登录”图标,则 SAPGuiUtil.AutoLogon 方法或“录制和运行设置”可能无法自动登录到 S/4HANA 服务器。 变通方法: 执行以下某项操作:
|
SAPGuiEdit 对象 |
使用 DeviceReplay 可能无法将整个值输入到 SAPGUI 客户端上的 SAPGuiEdit 对象中。 变通方法: 使用 SAPGuiEdit.Set 方法设置值。 |
编辑测试
高亮显示基于 Edge 的 HTML 控件 (UFT One 版本 2023 及更高版本) |
在 SAP GUI for Windows 7.70 Patch 6 应用程序中高亮显示控件时,如果您打开了浏览器页面,UFT One 可能无法将应用程序置于前台。 变通方法: 在执行高亮显示之前,关闭所有打开的浏览器页面并确保应用程序完全可见。 |
录制
标准 Windows 对话框 |
UFT One 不会自动录制由 SAP GUI for Windows 应用程序使用的标准 Windows 对话框(如“打开文件”和“另存为”对话框)。 这是因为 SAP Scripting API 不支持这些对话框。此情况也适用于“SAP GUI 安全性”对话框,并且在将 SAP GUI for Windows 与 GuiXT 结合使用时也可能发生。 变通方法:
|
按 F4 键 |
如果录制按 F4 键的步骤,而该按键操作会导致为多个字段设置新值,则仅为按了 F4 键的字段录制步骤。 因此,在运行期间将仅填充该字段。 |
SAPGUITree 对象 |
使用 SAP GUI 7.50 Patch 14 或 15 和 SAP GUI 7.60 Patch 4 或 5 时,UFT One 无法在 SAPGUITree 对象上录制步骤。 解决方案:升级到 SAP GUI 7.60 Patch 6 或更高版本。 变通方法: 使用对象侦测器将 SAPGUITree 对象添加到对象存储库中,然后手动将步骤添加到测试中。 |
SAP 甘特图 (SAP 条形图)/图像/图片控件 |
SAP GUI for Windows 替代录制机制支持 SAP 甘特图(SAP 条形图)和图像/图片控件。 目前对这些控件的支持有限。 您可以替代 SAP Windows 测试对象的默认录制行为,或添加针对其他 SAP GUI for Windows 对象的有限录制支持。 |
录制密码 |
出于安全考虑,SAP Scripting API 会阻止录制密码。 录制在密码框中插入密码的操作时,UFT One 会使用星号 (****) 作为方法参数值录制 Set 语句。 变通方法:
|
无法在 SAP GUI for Windows 应用程序上录制 |
如果 UFT One 是从浏览器启动的,则无法在 SAP GUI for Windows 应用程序上录制和运行步骤。 变通方法: 使用侦测器标识 SAP GUI 对象,然后开始录制。在运行步骤之前,请将以下步骤添加到脚本的开头: systemUtil.Run "Installation path of saplogon.exe" |
活动屏幕
下拉菜单 |
活动屏幕不会捕获下拉菜单。 活动屏幕技术在关闭菜单并选中菜单项之后捕获数据。 |
交互屏幕图像 |
录制时,UFT One 将为多个步骤捕获一个交互屏幕图像。 UFT One 仅在 SAP GUI for Windows 客户端将信息发送到 SAP 后端服务器时才会录制步骤。 发生这种情况时,在上次通信与当前通信之间执行的所有步骤都将添加到脚本。 活动屏幕将为该通信期间录制的所有步骤捕获发送到服务器的最后一个屏幕。 |
Web 元素 |
在 SAP GUI for Windows 应用程序内的 Web 元素上录制时,不会捕获 HTML 图像。 |
将对象添加到对象存储库中 |
将对象从在 SAP GUI for Windows 应用程序内的 Web 元素上录制的步骤创建的交互屏幕添加到对象存储库中时,将在对象存储库中生成不正确的对象层次结构。 这包括使用“查看对象”/“添加对象”选项将对象添加到对象存储库中,或创建检查点或输出值步骤。 |
在设置了多个显示器的 Windows 上录制 |
UFT One 2021 及更早版本: 在 SAP GUI for Windows 应用程序上录制时,如果在 Windows 上设置了多个显示器,则可能无法获得交互屏幕图像或未正确捕获的图像。 |
在 SAP GUI for Windows 应用程序上运行测试
HTML 元素 |
默认情况下,使用 UFT One Web 插件在 SAP GUI for Windows 应用程序中嵌入的 HTML 元素上执行录制和运行步骤。 在某些情况下,使用 Web 插件录制的步骤会在使用 SAP 脚本 API 的 SAP 插件步骤之前插入到脚本中。 变通方法: 使用通过 SAP 脚本接口录制 SAP GUI 应用程序中嵌入的 HTML 元素的选项。 为此,请执行以下操作:
|
“对象已被禁用”错误 |
在 SAP GUI for Windows 应用程序中嵌入的 HTML 元素上运行测试可能会导致出现“对象已被禁用”错误。 如果 HTML 控件未准备好用于测试运行,则可能会出现这种情况。 变通方法: 将 Sync 语句(如 SAPGuiSession.Sync)或 Wait 语句添加到脚本,以便成功运行测试。 |
"SAPGuiSession object not found" 错误 |
如果您的测试使用 .sap 文件通过 SAP GUI for Windows 登录到 SAP 系统,您可能会在运行测试时收到 "SAPGuiSession object not found" 错误。测试成功启动 SAP GUI for Windows 并登录到系统,但无法标识 SAPGuiSession.SAPGuiWindow 对象。这是因为 SAPGuiSession.SAPGuiWindow 步骤在 UFT One 有机会连接到启动的系统之前运行。 变通方法:
|
SAP Enterprise Portal |
在 SAP Enterprise Portal 环境中,在 SAP Web 和 SAP Windows 环境之间进行切换时,可能会在测试运行期间偶尔发生同步问题。 变通方法: 在 Web 步骤和 Windows 步骤之间添加 WaitProperty 或 Wait 语句。 |
SAP 登录 或 SAP 登录板 |
UFT One 可连接到 SAP Logon 或 SAP Logon Pad 应用程序,以在 SAP GUI for Windows 会话上录制和运行测试。 如果在计算机上同时使用 SAP Logon 和 SAP Logon Pad 进程,则 UFT One 将连接到启动的最新进程。 |
SAP 树节点 |
UFT One 无法在包含“;”字符的 SAP 树节点上运行步骤。 |
SAP NWBC |
使用 SAP NWBC 时,UFT One 不支持多个 NWBC 客户端。如果您一次打开多个 NWBC、SAP 登录或 SAPGUI 客户端,UFT One 将仅识别第一个客户端。 |
测试结果中的屏幕捕获 | 在 HTML 测试结果中,SAPGui 测试对象未在屏幕捕获中突出显示。要查看屏幕捕获中突出显示的对象,请使用 Run Results Viewer 报告。 |
检查点和输出值
确保对象属性正确无误 |
要确保检查点捕获了正确的对象属性,请始终录制会导致与服务器通信的步骤(例如,按 Enter),之后再插入检查点或输出值。 |
不受支持的控件 |
无法对以下所列控件使用对象侦测器或为其创建检查点。 但是可以在这些控件上成功录制和运行步骤。
|
位于非活动 SAP 屏幕中的对象 |
不支持在当前处于非活动状态的 SAP 屏幕(例如,屏幕位于调用的对话框后面)中的对象上创建检查点或使用对象侦测器。 但是,您可以使用“录制状态栏消息”选项对状态栏消息 (显示在非活动窗口中) 创建检查点。 (工具 > 选项 > GUI 测试选项卡 > SAP 节点 > 录制状态栏消息)。 |
6.40 客户端上的旧 6.20 测试 |
在 6.40 客户端上运行旧的 6.20 测试时,以下对象上的检查点可能会因 6.40 客户端中这些对象的工具提示属性值发生更改而失败。
|
表控件中的行 |
UFT One 可估算表控件中的行数,但无法检索精确数目,因为实际上只有客户端上可见的表内容才可用。 不可见行的数据仅存储在后端服务器上。 因此,插入或修改表控件对象的检查点时,定义/修改行范围对话框中指定的行数可能不准确。 |
表检查点 |
当 UFT One 检索表检查点的数据时,即便看似要花费很长时间,也不要对 SAP GUI 窗口执行任何操作,因为这可能会导致严重问题。 示例操作包括更改事务状态或导航到另一个窗口。 |
交互屏幕表/网格 |
在活动屏幕中的表或网格上插入检查点时,必须在 SAP Gui for Windows 应用程序中打开实际表,才能从该表或网格中提取正确信息。 |
SAP 结构化参数
编辑测试脚本按钮 |
通过在 SAP Solution Manager 测试自动化: 初始屏幕事务(事务代码: stce)或 SAP Solution Manager 配置事务(事务代码: Solar02)中直接单击 Edit Test Script 按钮来启动 UFT One 时,在 UFT One 中单击维护 SAP 参数按钮可能无法跳转到 SAP Solution Manager 中的正确页面。 变通方法: 使用“更改测试配置”事务中的外部测试按钮启动 UFT One。 |
在更改测试脚本事务中创建测试 |
在 SAP Solution Manager 的“更改测试脚本”事务中创建测试并单击上一步按钮时,UFT One 无法显示测试。 变通方法: 保存并关闭 UFT One,然后单击外部测试按钮以调用 UFT One。 |
维护 SAP 参数/上一步/外部测试按钮 |
单击维护 SAP 参数按钮或上一步/外部测试按钮以从 UFT One 切换到 SAP 时,在 SAP Solution Manager 中收到错误: OBJECT_OBJREF_NOT_ASSIGNED。 |
使用 SNC 的 Solution Manager 连接
更新 SNC 设置 |
在 UFT One 中设置与 Solution Manager 服务器的连接后,在 SAP GUI 客户端中更新的 SNC 设置不会在 UFT One 端自动更新。这种不一致可能会导致在尝试使用该连接时发生错误。 变通方法: 在服务器或 SAP GUI 客户端中更新 SNC 设置后,请打开 Solution Manager 连接对话框并重新选择服务器以更新相应信息。 |
使用 SAP GUI 7.70 Patch 2 或更高版本、SAP GUI 7.60 Patch 11 或更高版本 |
首次使用 SNC 建立与 Solution Manager 服务器的连接可能不会成功。 变通方法: 重复尝试建立该连接 (可能需要尝试两到五次)。 |
Solution Manager 中的 GUI 测试参数
如果您在 Solution Manager 中运行 UFT One GUI 测试作为复合测试的一部分,请确保测试参数名称全部为大写字母。否则,Solution Manager 中运行的测试将失败。