已知问题 - 基于 Web 的 SAP

常规

我们建议仅在没有加载其他基于 Web 的插件时使用 UFT One SAP 解决方案插件。

SAP 解决方案插件将修改可能会影响其他插件或应用程序的 Web 配置设置。

返回页首

对象标识

多个浏览器窗口

在某些情况下,当测试运行期间打开了多个浏览器时,UFT One 无法正确标识特定对象。

变通方法: 在“对象存储库”窗口中清除 Browser 测试对象的启用智能标识复选框。

您可能还希望在对象标识对话框中禁用 Browser 测试对象的启用智能标识选项,以用于以后的测试录制。

iView

可能无法正确识别最小化或折叠的 iView。

SAP Enterprise Portal 框架

在某些情况下,SAP Enterprise Portal 中的框架可能被识别为 Web Frame 对象而非 iView 对象。

有时会动态生成框架名称。

因为 Web Frame 对象使用 name 属性标识对象,所以必须修改录制的 name 值,才能使用相应的正则表达式,以便 UFT One 能在测试运行期间识别它。

SAP Web 表单元格

在 SAP Web 表单元格内的对象上使用对象侦测器或创建检查点时,如果尚未在对象上执行单击,UFT One 可能会将该对象识别为 WebElement 而非相应的 SAP Web 对象。

变通方法: 先单击 SAP Web 表单元格内的对象,再在该对象上使用对象侦测器或创建检查点。

活动屏幕
  • 避免使用在弹出式对话框打开时捕获的活动屏幕将对象从主窗口添加到对象存储库。否则会导致对象存储库中的对象层次结构不正确。

返回页首

录制

在表控件上录制和运行步骤时,仅在客户端上显示的表内容才实际可用。

iView 选项菜单/SAP Enterprise Portal 标题栏

iView 选项菜单上的操作以及 SAP Enterprise Portal 页面标题栏中对象上的操作均将录制为 Frame 对象上的 Web 操作,而非录制为 iView 对象上的 SAP 操作。

拖动滚动条

不录制拖动 SAP GUI for HTML 表滚动条。

变通方法: 可以通过单击滚动按钮录制在 SAP GUI for HTML 表中的滚动操作。或者使用步骤生成器或编辑器在测试中插入 SAPTable.Object.DoScroll("up")SAPTable.Object.DoScroll("down") 语句。

SetCellData 方法

在 SAP GUI for HTML 中的某些表中,未正确录制 SetCellData 方法。

变通方法: 录制时,在编辑表格单元格中的文本值后执行以下操作之一:

  • Tab 提交该值并移至下一个单元格。
  • Enter 提交该值,然后单击表单元格之外的某个位置。
SAPList 对象

录制 SAPList 对象时,您需要单击列表的输入部分,而非其按钮部分,以便 UFT One 能够识别该对象。

S/4 HANA 应用程序中的 SAPTable 对象

在 Internet Explorer 中录制时,如果在 S/4 HANA 应用程序的 SAPTable 单元中按 EnterUFT One 未录制步骤。

变通方法: 要指示 UFT One 在按 Enter 时录制 SAPTable.Submit 步骤,请创建以下注册表项并将其值设置为 1:

Computer\HKEY_CURRENT_USER\Software\Mercury Interactive\QuickTest Professional\MicTest\Packages\SAPPackage\Settings\RecordSubmitForTableNavigateEvent

活动屏幕
  • 活动屏幕可能不显示在录制测试时捕获的整个 HTML 页面。

    变通方法: 调整活动屏幕大小,以使其适合 HTML 页面大小。

  • UFT One 15.0.1: 在 Chrome 中录制时,交互屏幕未捕获 SAPDropDownMenu 对象。

SAPDropDownMenu 对象

在 Chrome 或 Internet Explorer 中,UFT One 可能无法在 SAP CRM 或 WDA 应用程序中的 SAPDropDownMenu 对象上进行录制。

变通方法: UFT One15.0.1 及更高版本: 使用侦测器来识别对象并将其添加到对象存储库中。然后,手动将必需的步骤添加到测试中。

CRM S/4 HANA 上的 SAPTabStrip().Select 操作

在 Internet Explorer 中录制 SAPTabStrip().Select 操作时,可能会添加重复的步骤。

变通方法: 使用侦测器来识别对象并将其添加到对象存储库中。然后,手动将必需的步骤添加到测试中。

SAPTreeView 的 Activate 方法

无法在 Chrome 中录制 SAPTreeView 对象的 Activate 方法。

变通方法: 使用侦测器来识别对象并将其添加到对象存储库中。然后,手动将必需的步骤添加到测试中。

返回页首

在 SAP 应用程序上运行测试

性能

在运行会话期间,SAP 平台响应时间可能会长于 UFT One 运行对应步骤所用的时间。

变通方法: 在相关步骤之前添加 Wait 语句。

找不到对象

在某些情况下,当在 SAPEdit、SAPNavigationBar 或 SAPPortal 上运行测试时,可能会收到找不到对象错误。

变通方法: 执行以下某项操作:

  • 确保对象属性唯一且正确。

  • 按如下所指定的修改注册表:

    对于 32 位计算机: 在 HKEY_LOCAL_MACHINE\Software\Mercury Interactive\QuickTestProfessional\MicTest\AbortIfHangInSendData 注册表项中,将 DWORD 的值设置为 0

    对于 64 位计算机: 在 HKEY_LOCAL_MACHINE\Software\Wow6432Node\Mercury Interactive\QuickTestProfessional\MicTest\AbortIfHangInSendData 注册表项中,将 DWORD 的值设置为 0

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

ITS 框架

在 SAP Enterprise Portal iView 的 ITS 框架上运行测试时,ITS 菜单有时无法正常使用。

变通方法: 放大 iView,并/或增加对象同步超时,然后再次运行测试。

基于 Web 的 CRM 系统

使用 CRM 系统测试模式:

当使用 UFT One 测试基于 Web 的 CRM 系统时,请确保 CRM 处于测试模式。可以通过向 URL 添加 "?sap-testmode=X" 来完成此操作。

CRM 7.02 和 7.03:

测试使用 CRM 7.02 或 7.03 开发的应用程序时,SAPList.Select 方法可能会生成参数错误。

如果发生这种情况,请在 Select 步骤之前添加 Click 步骤,以避将来出现错误。

CRM S4 HANA:

测试 CRM 系统时,不支持 SAPRadioGroup.HighlightSAPRadioGroup.CaptureBitmap 方法。

SAPTable 对象

在某些 SAPTable 对象上,如果要查找的行在表中不可见,则 FindRowByCellContent 方法无法正常工作。如果发生这种情况,请添加一个要滚动的额外步骤,以使该行可见。

S/4 HANA 应用程序的 SAP 表中的 SAPList 对象

在某些 S/4 HANA 应用程序中,针对表单元格中包含的某个列表运行 SAPList().Select 方法将不会从该列表中进行选择。

变通方法: 在从表单元格内的列表中选择的步骤之前,添加一个用于选择该单元格的步骤。

示例:

SAPTable("MyTable").SelectCell X,Y

SAPList("MyList").Select

SAPDropDownMenu

在运行时期间,UFT One 可能无法标识 SAP NWBC、WDA 或 EP 应用程序中的 SAPDropDownMenu 对象。

变通方法:

  • Logical nameinnertext 描述属性添加到对象存储库中的对象,然后再次运行测试。如果 innertext 属性未提供唯一标识,请改用 index 属性。
  • 如果上述变通方法无法解决该问题,请执行以下操作: 在“对象标识”中,将 'html id' 属性添加到 SAPDropDownMenu 对象的“必要属性”中。

具有子菜单的 SAPDropDownMenu 对象

如果录制时在 SAPDropDownMenu 对象的子菜单中已选择一个项,则录制的对象将是子菜单,而非父菜单。这可能会导致测试运行失败。

变通方法: 为避免错误,请在运行测试之前,手动更改对象存储库中的描述属性,以与父菜单 (而非子菜单) 匹配。

跨浏览器测试支持

在 Internet Explorer 中,UFT One 可能无法运行在 Chrome 中录制的 SAPButton.Click 操作。

变通方法: 在对象存储库中,将辅助属性 html tag 替换为 html id

SAPNWBC.DetailedNavigation

当您运行用于导航到 Chrome 左侧导航树中某个文件夹下的菜单项的 SAPNWBC.DetailedNavigation 步骤时,会发生错误。

变通方法: 添加一个步骤以先导航到父文件夹,然后再运行导航到子菜单项的步骤。

SAPFrame 对象

如果在 Chrome 中为包含名称以 “.” 结尾的图像的 SAPFrame 对象添加检查点,UFT One 可能无法在 Internet Explorer 中运行已添加的检查点。

注释: UFT One15.0.2 及更高版本 支持 SAPFrame 对象。

变通方法: 从检查点中删除图像检查。

SAPTreeView.SelectMenuItem

在 Internet Explorer 中,UFT One 可能无法运行已手动添加到测试中的 SAPTreeView.SelectMenuItem 步骤。

变通方法: 使用侦测器来识别对象并将其添加到对象存储库中。然后,手动将必需的步骤添加到测试中。

返回页首

Fiori 应用程序

在两个连续的步骤中使用 Set 方法

使用 Fiori 应用程序时,如果在连续两次使用 Set 方法的脚本中运行 sapUIObject 值设置为变量的测试,则可能会发生错误。

例如:

set sapObject=Browser("DatePicker - sap.m").Page("DatePicker - sap.m").SAPUICalendar("DP1-describedby")

sapObject.SetDate "20150114"

sapObject.SetDate "000000"

请使用以下方法之一更新脚本:

Chrome 中的其他对象

在 Chrome 中工作时,如果您将某些对象添加到对象存储库中,UFT One 会添加许多其他对象。

变通方法: 使用其他浏览器 (IE 或 Firefox) 或从存储库中手动删除不需要的对象。

SAPUICalendar 上录制 SetDate 步骤

使用 Fiori 应用程序时,具有时间选取器的 Calendar 对象上的 SetDate 无法正确录制和运行时间部分。

变通方法: 手动将 WebEdit.Set 步骤添加到测试中。

例如:

WebEdit.Set "Jan 23, 2019, 11:46:00 AM"

SAPUIDateTimeInput 上录制 SetDateTime 步骤

在 Fiori 应用程序上录制时,不会录制 SAPUIDateTimeInput.SetDateTime

变通方法: 录制时,请在 SAPUIDateTimeInput 对象中选择日期之前,单击文本框以使 SAPUIDateTimeInput 对象成为焦点。

使用 Submit 方法时浏览器将刷新

同时启用 WEB 和 SAP 插件时,如果使用 webUtil 之后在 Firefox/Chrome 中使用 submit 方法,浏览器将刷新。

变通方法:

  • 使用 systemUtil 来代替 webUtil
  • submit 方法之前,使用 DeviceReplay 将焦点从 URL-文本框转移到要提交的文本框上。例如:

    WebUtil.LaunchBrowser "FIREFOX"

    Browser("micclass:=browser").Navigate "https://sapui5.hana.ondemand.com/1.44.27/test-resources/sap/m/Dialog.html"

    Browser("micclass:=browser").Page("micclass:=page").SAPUIButton("name:=Simple Dialog").Click

    Set dr = CreateObject("Mercury.DeviceReplay")

    ax = Browser("micclass:=browser").Page("micclass:=page").SAPUIDialog("name:=Simple Dialog").GetROProperty("abs_x")

    ay = Browser("micclass:=browser").Page("micclass:=page").SAPUIDialog("name:=Simple Dialog").GetROProperty("abs_y")

    dr.MouseClick ax,ay,LEFT_MOUSE_BUTTON

    Browser("micclass:=browser").Page("micclass:=page").SAPUIDialog("name:=Simple Dialog").Submit

返回页首

特定于 SAPUI5 的限制

桌面/移动

由于 SAPUI5 插件支持桌面和移动应用程序,因此桌面和移动应用程序并非支持所有对象的所有方法。

应用程序警报消息

在 SAPUI5 测试对象上运行测试或组件时,不会显示某些对象的应用程序警报消息。

变通方法: 执行以下某项操作:

  • 确保测试不包含需要针对警报消息执行的步骤。

  • If 语句添加到可触发警报的对象测试中,检查是否存在警报。

嵌套的表对象

如果 SAPUI5 应用程序包含嵌套的表对象,则在嵌套的表对象上插入检查点将仅显示父 SAPUITable 对象。

变通方法: 选择嵌套的 WebTable 对象,并为 WebTable 对象 (而非父 SAPUITable 对象) 创建检查点。

SAPUIMenu 对象

当使用对象侦测器查看 SAPUIMenu 对象或录制处于已关闭状态且隐藏的 SAPUIMenu 对象时,可能无法执行以下操作:

  • 在 Firefox 和 Chrome 浏览器中使用“将对象添加到存储库”按钮 将菜单对象添加到存储库中

  • 在 Chrome 浏览器中录制对象。

  • 在 Firefox 和 Chrome 浏览器中添加检查点或输出值步骤

禁用的控件

使用移动 SAPUI5 应用程序时,由于应用程序对象属性,UFT One 无法在某些禁用的控件 (如 SAPUIButtonSAPUITextEdit) 上使用对象侦测器。

Internet Explorer 11

在 Internet Explorer 11 中工作时,如果您的应用程序要求您向下滚动以执行某个按钮单击操作,SAPUIButton.Click 方法不会单击该按钮。

变通方法: 请改用 SAPUIButton.Submit 方法。

ChildObjects 方法

在某些对象上使用 ChildObjects 方法时,不同的浏览器会返回不同的结果。

返回页首

特定于 SAPWDJ 的限制

加载插件

如果尝试在不加载 SAPWDJ 插件的情况下在 SAP WDJ 应用程序中录制对象,则 UFT One 只能正确录制部分对象。

变通方法: 重新启动 UFT One 并加载 SAP WDJ 插件。

性能

在测试运行期间,运行 SAP Web Dynpro Java (WDJ) 应用程序的 SAP 平台的响应时间可能会长于 UFT One 运行对应步骤所用的时间。

变通方法: 在执行相关步骤之前添加 Wait 语句,或将“选项”对话框的“测试运行”窗格中的“延迟每个步骤执行”选项 (“工具”>选项”> GUI测试”选项卡 >“测试运行”节点) 设置为所需的等待时间 (以毫秒为单位)

不受支持的功能

SAP WDJ 应用程序不支持以下功能:

  • 选择不可见的表行

  • 与应用程序滚动条交互

  • 表单元格内的菜单

  • 应用程序中的日期选择区窗口

SelectCell 方法

在 SAPWDJTable 对象上录制步骤时,如果选择不可编辑的单元格,将不会始终录制 SelectCell 方法。

用于打开弹出式窗口的链接

如果您的表包含用于打开弹出式窗口的链接,则在使用 SAPWDJTable.SelectItemInCell 方法单击该链接时,UFT One 无法正确运行 .SelectItemInCell

变通方法: 将 linkFuncLibr 函数库与测试关联。可在“<UFT One 安装文件夹>\dat\Extensibility\Web\Toolkits\SAPWDJ\FunctionLibraries\linkFuncLibr.qfl”中找到此函数库。

返回页首

SAP Business Networks 应用程序

SAPWebExt 列表

不支持在 SAP FieldGlass 中的 SAPWebExt 列表对象上侦测或添加检查点。

测试 SAP FieldGlass 时,SAPWebExtList.Select 方法可能会失败。如果发生这种情况,请改用 WebEdit.Set 方法。

SAPWebExtTable 对象

不支持 SAPWebExtTable 对象上的检查点。

变通方法: 执行以下某项操作:

  • 重新启动 UFT,清除 SAPWebExt 插件,然后在 WebTable 对象上添加检查点。

  • 使用 .GetCellData 方法

  • 在 SAPWebExtTable 对象的子 WebTable 上添加检查点。

返回页首

SAP WebDynpro ABAP 应用程序

SAPButton.Click 方法

在 WebDynpro ABAP 站点上录制 SAPButton.Click 方法可能会导致浏览器出现延迟。

变通方法: 执行以下某项操作:

  • 等待浏览器做出响应
  • 暂停录制并再次单击
  • 刷新浏览器并重试
SAPTable 对象
  • 不录制 SAPTable 对象上的单击操作。

    变通方法: 手动将对象添加为 WebElement,并将 WebElement.Click 步骤添加到测试中。

  • 为 SAPTable 对象添加检查点时,可能会发生未指定的错误。

    变通方法:HKEY_LOCAL_MACHINE\Software\Wow6432Node\Mercury Interactive\QuickTest Professional\MicTest 中添加默认值为 0 的注册表 AbortIfHangInSendData

    请注意,当在其他 SAP 技术 (例如 Fiori 和 SAPUI5) 上运行时,这可能会导致出现问题。

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

SAPTable.OpenPossibleEntries

在某些应用程序上,不会在 IE 或 Chrome 中录制 SAPTable.OpenPossibleEntries 操作。

变通方法:

先单击单元格,然后单击单元格旁边的图标以录制 OpenPossibleEntries

删除已录制的所有其他 SetCellData 步骤。

SAPTable.SelectCell 方法: 常规录制

在 SAP WDA 7.5 应用程序中的 SAPTable 对象上使用 SelectCell 方法时:

  • 如果表单元格位于单击后立即关闭的弹出式对话框窗口中,UFT One 将无法录制操作。

  • 您可能需要单击两次表单元格才能使 UFT One 能够录制操作。

SAPTable.SelectCell 方法: 录制应用程序中消失的表对象

如果执行选择操作后表对象立即从应用程序中消失,则不会在表对象上录制 SelectCell 方法。

变通方法: 录制后手动添加 SAPTable.SelectCell 方法。

返回页首

动态显示

如果您的 WebDynpro ABAP 或 EP 应用程序配置了在滚动时动态显示的功能,则在检索当前不可见的单元格或列表数据时可能会遇到问题。

为避免出现这种情况,请确保在运行步骤、侦测或突出显示之前完全加载所有数据。

例如:

针对表的变通方法:

SAPTable.GetCellData 方法之前,添加可向下滚动并显示所有行数据的步骤。

然后,对当前行值使用 GetCellData 方法。

例如:

'get value in row 1
print Browser("WDR_TEST_C_TABLE [Web").Page("Web Dynpro Test Suite").SAPTable("[Demo Table Part 1]").GetCellData (2,4)
For Iterator = 1 To 4 Step 1
    wait 1
    Browser("WDR_TEST_C_TABLE [Web").Page("Web Dynpro Test Suite").SAPButton("SAPButton_2").Click
Next
'get value in row 7 which is shown in line 4 after scroll
print Browser("WDR_TEST_C_TABLE [Web").Page("Web Dynpro Test Suite").SAPTable("[Demo Table Part 1]").GetCellData (4,4)

针对列表的变通方法:

在使用 GetItem 方法或侦测之前,先激活 SAPList 对象。

例如,先选择或单击列表,或者在测试中使用 SelectClick 方法。

返回页首

另请参见: