已知问题 - 基于 Web 的 SAP
本主题包含有关测试基于 Web 的 SAP 应用程序的疑难解答和限制信息。
常规
我们建议仅在没有加载其他基于 Web 的插件时使用 UFT One SAP 解决方案插件。
SAP 解决方案插件将修改可能会影响其他插件或应用程序的 Web 配置设置。
在 Chrome 上测试基于 Web 的 SAP 应用程序
与UFT One 2022 及更高版本相关
如果您使用的是 Chrome 商店或“<UFT One 安装文件夹>\Installations\Chrome\v3”文件夹中提供的最新扩展,您可能会遇到意外行为。
如何判断我是否使用了相关的扩展: 导航到 chrome://extensions/ 页面,然后在您安装的扩展上单击“详细信息”。扩展的“检查”视图为服务工作程序。
变通方法: 卸载现有扩展,按照已禁用 Chrome 自动更新中的安装说明从“<UFT One 安装文件夹>\Installations\Chrome\v2”安装另一个 Chrome 扩展。
对象标识
多个浏览器窗口 |
在某些情况下,当测试运行期间打开了多个浏览器时,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 表单元格内的对象,再在该对象上使用对象侦测器或创建检查点。 |
SAP NWBC S/4HANA 系统中的 Web 表单元格 |
当您使用对象侦测器在 Internet Explorer 中对 SAP NWBC S/4HANA 系统中的 SAP Web 表单元格内的对象进行侦测或创建检查点时,UFT One 可能会捕获重复的表名和单元格值。 |
SAP NWBC S/4HANA 系统中的 SAPList 对象 |
当您在 Internet Explorer 中对 SAP NWBC S/4HANA 系统中的 SAPList 对象进行侦测或录制时,UFT One 捕获的某些属性的值可能是错误的。 |
活动屏幕 |
避免使用在弹出式对话框打开时捕获的活动屏幕将对象从主窗口添加到对象存储库。否则会导致对象存储库中的对象层次结构不正确。 |
录制
表 |
在表控件上录制和运行步骤时,仅在客户端上显示的表内容才实际可用。 |
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 方法。 变通方法: 录制时,在编辑表格单元格中的文本值后执行以下操作之一:
|
SAPList 对象 |
在 SAPList 对象上录制时,您需要单击列表的输入部分,而非其按钮部分,以便 UFT One 能够识别该对象。 |
S/4HANA 系统中的 SAPTable 对象 |
在 Internet Explorer 中录制时,如果在 S/4HANA 系统的 SAPTable 单元格中按 Enter,UFT One 不录制步骤。 变通方法: 要指示 UFT One 在按 Enter 时录制 SAPTable.Submit 步骤,请创建以下注册表项并将其值设置为 1: Computer\HKEY_CURRENT_USER\Software\Mercury Interactive\QuickTest Professional\MicTest\Packages\SAPPackage\Settings\RecordSubmitForTableNavigateEvent |
活动屏幕 |
活动屏幕可能不显示在录制测试时捕获的整个 HTML 页面。 变通方法: 调整活动屏幕大小,以使其适合 HTML 页面大小。 |
SAPDropDownMenu 对象 |
在 Chrome 或 Internet Explorer 中,UFT One 可能无法在 SAP CRM 或 WDA 应用程序中的 SAPDropDownMenu 对象上进行录制。 变通方法: 使用侦测器来识别对象并将其添加到对象存储库中。然后,手动将必需的步骤添加到测试中。 |
CRM S/4HANA 系统上的 SAPTabStrip().Select 操作 |
在 Internet Explorer 上录制 SAPTabStrip().Select 操作时,UFT One 有时会录制冗余步骤。 变通方法: 使用侦测器来识别对象并将其添加到对象存储库中。然后,手动将必需的步骤添加到测试中。 |
SAPTreeView 对象 |
|
Internet Explorer 中的 SAPUI5 或 SAP SuccessFactors |
在某些情况下,在 SAPUI5 中的 SAPUI 对象或 Internet Explorer 中的 SAP SuccessFactors 应用程序上进行录制不会录制任何步骤。 变通方法: 执行以下某项操作:
|
在 Firefox 中的 CRM S/4HANA 系统上进行录制 |
UFT One 2021 R1 及更高版本: 在 Firefox 78.14.0 ESR 中的 CRM S/4HANA 系统上进行录制时,您可能会遇到以下错误:
变通方法: 在 Firefox 扩展设置中,单击 Micro Focus UFT 代理旁边的圆点按钮并选择“选项”。然后在“选项”选项卡中将“默认帧通信模式”设置为“扩展”。 |
SAPRadioGroup.Select |
UFT One 2021 R1 及更高版本: 在 Internet Explorer 上的 SAP NWBC S/4HANA 2020 系统中对 SAPRadioGroup 对象录制 Select 操作时,UFT One 可能无法完整录制操作或将操作错误地录制为 MouseDown 事件。 变通方法: 手动将录制的步骤添加或更改为 SAPRadioGroup.Select 步骤。 |
在 SAP 应用程序上运行测试
Fiori 应用程序
在两个连续的步骤中使用 Set 方法
使用 Fiori 应用程序时,如果在连续两次使用 Set 方法的脚本中运行 sapUIObject 值设置为变量的测试,则可能会发生错误。
例如:
set sapObject=Browser("DatePicker - sap.m").Page("DatePicker - sap.m").SAPUICalendar("DP1-describedby") sapObject.SetDate "20150114" sapObject.SetDate "000000"
请使用以下方法之一更新脚本:
例如:
set sapObject=Browser("DatePicker - sap.m").Page("DatePicker - sap.m").SAPUICalendar("DP1-describedby") sapObject.SetDate "20150114" sapObject.RefreshObject sapObject.SetDate "000000"
例如:
Browser("DatePicker - sap.m").Page("DatePicker - sap.m").SAPUICalendar("DP1-describedby").SetDate "20150114" Browser("DatePicker - sap.m").Page("DatePicker - sap.m").SAPUICalendar("DP1-describedby").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
在 Chrome 上录制 SAPUIMenu.Select 操作
在 Chrome 上的 Fiori 1.91 及更高版本中录制 SAPUIMenu().Select 操作时,UFT One 有时会录制冗余步骤。
变通方法:
-
从测试中手动删除重复的步骤。
-
使用侦测器来识别对象并将其添加到对象存储库中。然后,手动将必需的步骤添加到测试中。
特定于 SAPUI5 的限制
桌面/移动 |
由于 SAPUI5 插件支持桌面和移动应用程序,因此桌面和移动应用程序并非支持所有对象的所有方法。 |
应用程序警报消息 |
在 SAPUI5 测试对象上运行测试或组件时,不会显示某些对象的应用程序警报消息。 变通方法: 执行以下某项操作:
|
嵌套的表对象 |
如果 SAPUI5 应用程序包含嵌套的表对象,则在嵌套的表对象上插入检查点将仅显示父 SAPUITable 对象。 变通方法: 选择嵌套的 WebTable 对象,并为 WebTable 对象(而非父 SAPUITable 对象)创建检查点。 |
SAPUIMenu 对象 |
当使用对象侦测器查看 SAPUIMenu 对象或录制处于已关闭状态且隐藏的 SAPUIMenu 对象时,可能无法执行以下操作:
|
禁用的控件 |
使用移动 SAPUI5 应用程序时,由于应用程序对象属性,UFT One 无法在某些禁用的控件 (如 SAPUIButton 和 SAPUITextEdit) 上使用对象侦测器。 |
Internet Explorer 11 |
在 Internet Explorer 11 中工作时,如果您的应用程序要求您向下滚动以执行某个按钮单击操作,SAPUIButton.Click 方法不会单击该按钮。 变通方法: 请改用 SAPUIButton.Submit 方法。 |
ChildObjects 方法 |
在某些对象上使用 ChildObjects 方法时,不同的浏览器会返回不同的结果。 |
SAPUIFacetFilter.Open 方法 |
打开多个筛选时,SAPUIFacetFilter.Open 方法可能会失败。 变通方法: 在打开第二个筛选之前使用 DeviceReplay 模糊处理鼠标焦点。 示例:
|
SAPUIList.SetItemData 方法 | 要在 Mozilla Firefox 上的列表中的输入字段上进行录制,请在录制过程中单击该字段两次,然后再输入文本。 |
WebUtil.LaunchBrowser 方法 |
如果您使用 WebUtil.LaunchBrowser 方法从 Internet Explorer 或 Chrome 打开应用程序,后续 SAPUIFacetFilter.Open 步骤可能会失败。 变通方法:
示例:
|
SAPUI5 和 SuccessFactors 应用程序
SAPUIList.Select 方法 |
如果相应操作涉及向下滚动来查找 SAPUIList 对象中的某个选项,则 SAPUIList.Select 方法无法选择该选项。 变通方法 1: 运行 SAPUIList.Select 步骤两次。 变通方法 2: 执行以下操作:
示例
|
SAPUIList.Select 方法 |
如果使用索引来表示要在脚本中选择的项,SAPUIList.Select 方法可能无法运行相应操作。 变通方法: 使用上述变通方法 2。 |
SAPUIList 对象 |
如果同一页面上存在多个相似的 SAPUIList 对象,UFT One 可能无法在运行时正确标识它们。 变通方法: 更改对象存储库中的对象属性,以使 UFT One 能够标识特定对象,例如添加属性 ID 和删除额外的索引值。 |
SAPUITable.SetCellData 方法 |
SetCellData 方法可能无法设置 SAPUITable 对象的单元格值。 变通方法: 请改用 SAPUITextEdit.Set 方法。 |
SAPUITable.SelectItemInCell 方法 |
在 Internet Explorer 中,UFT One 可能无法运行已录制的 SAPUITable.SelectItemInCell 操作。 变通方法: 使用侦测器来识别对象并将其添加到对象存储库中。然后,手动将必需的步骤添加到测试中。 |
包含 SAPUITable 对象的 SAPUIList 对象 |
SAPUIList 对象可能会被错误地录制为 SAPUITextEdit 对象或 SAPUITable 对象。在这种情况下,运行已录制的 SAPUITextEdit.Set 或 SAPUITable.SelectCell 步骤可能会失败。 变通方法: 在 SAPUITextEdit.Set 或 SAPUITable.SelectCell 步骤之前添加 WebButton.Click 步骤和 Wait 步骤。 示例:
|
SAPUICalendar 对象 |
|
表内的 SAPUI 对象 |
UFT One 可能无法在表内的 SAPUI 对象上执行录制。 变通方法: 使用侦测器来识别对象并将其添加到对象存储库中。然后,手动将必需的步骤添加到测试中。 |
SAPUITextEdit.Set 触发的动态搜索 |
如果触发动态搜索,已录制的 SAPUITextEdt.Set 操作可能无法正确运行。 变通方法: 根据您的 UFT One 版本执行以下操作之一:
|
SAPUIButton.Click |
在某些应用程序中,UFT One 可能无法录制或运行打开文件上传窗口的 SAPUIButton.Click 操作。 变通方法: 使用以下解决方案之一:
|
SAPUITextEdit 对象 |
UFT One 2023 及更高版本: 在 SAP SuccessFactors H2 2022 中侦测或录制动态搜索框时会出现以下问题:
|
SAPUIButton 对象 |
UFT One 2023 及更高版本: 在 SAP SuccessFactors H2 2022 中侦测或录制 SAPUIButton 对象时会出现以下问题:
|
SAPUIList.ExtendSelect 和 SAPUIList.ExtendDeselect 方法 |
SAP SuccessFactors H2 2022: 成功录制 SAPUIList 的 ExtendSelect 或 ExtendDeselect 操作后,UFT One 有时无法录制后续的 ExtendSelect 或 ExtendDeselect 操作。 变通方法: 第一个 ExtendSelect 或 ExtendDeselect 操作录制成功后,单击下拉按钮重新打开下拉列表,然后继续录制。 |
SAP Business Networks 应用程序
SAPWebExt 列表 |
不支持在 SAP FieldGlass 中的 SAPWebExt 列表对象上侦测或添加检查点。 测试 SAP FieldGlass 时,SAPWebExtList.Select 方法可能会失败。如果发生这种情况,请改用 WebEdit.Set 方法。 |
SAPWebExtTable 对象 |
不支持 SAPWebExtTable 对象上的检查点。 变通方法: 执行以下某项操作:
|
SAP WDA 应用程序/S/4 HANA 中的 SAP WDA 应用程序
此部分介绍在使用 Web Dynpro ABAP (WDA) 应用程序或 SAP S/4 HANA 中的 WDA 应用程序时可能遇到的已知问题。
SAPButton.Click 方法 |
在 Web Dynpro ABAP 站点上录制 SAPButton.Click 方法可能会导致浏览器出现延迟。 变通方法: 执行以下某项操作:
|
SAPTable 对象 |
|
SAP WDA 应用程序中的 SAPTable.OpenPossibleEntries |
在某些应用程序上,不会在 IE 或 Chrome 中录制 SAPTable.OpenPossibleEntries 操作。 变通方法: 先单击单元格,然后单击单元格旁边的图标以录制 OpenPossibleEntries。 删除已录制的所有其他 SetCellData 步骤。 |
SAPTable.SelectCell 方法: 常规录制 |
在 SAP WDA 7.5 应用程序中的 SAPTable 对象上使用 SelectCell 方法时:
|
SAPTable.SelectCell 方法: 录制应用程序中消失的表对象 |
如果执行选择操作后表对象立即从 SAP WDA 应用程序中消失,则不会在该表对象上录制 SelectCell 方法。 变通方法: 录制后手动添加 SAPTable.SelectCell 方法。 |
SAPEdit 对象 |
在 Chrome 或 Chromium Egde 上对 SAP S/4HANA 中某些 WDA 应用程序中的 SAPEdit 对象进行录制时,UFT One 可能会录制不正确的对象名称。 变通方法: 使用侦测器来识别 SAPEdit 对象并将其添加到对象存储库中。然后,手动将必需的步骤添加到测试中。 |
动态显示
如果您的 Web Dynpro 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 对象。
例如,先选择或单击列表,或者在测试中使用 Select 或 Click 方法。
另请参见: