已知问题 - 基于 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 方法。 变通方法: 录制时,在编辑表格单元格中的文本值后执行以下操作之一:
|
SAPList 对象 |
录制 SAPList 对象时,您需要单击列表的输入部分,而非其按钮部分,以便 UFT One 能够识别该对象。 |
S/4 HANA 应用程序中的 SAPTable 对象 |
在 Internet Explorer 中录制时,如果在 S/4 HANA 应用程序的 SAPTable 单元中按 Enter,UFT One 未录制步骤。 变通方法: 要指示 UFT One 在按 Enter 时录制 SAPTable.Submit 步骤,请创建以下注册表项并将其值设置为 1: Computer\HKEY_CURRENT_USER\Software\Mercury Interactive\QuickTest Professional\MicTest\Packages\SAPPackage\Settings\RecordSubmitForTableNavigateEvent |
活动屏幕 |
|
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 应用程序上运行测试
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
特定于 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 方法时,不同的浏览器会返回不同的结果。 |
特定于 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 对象上的检查点。 变通方法: 执行以下某项操作:
|
SAP WebDynpro ABAP 应用程序
SAPButton.Click 方法 |
在 WebDynpro ABAP 站点上录制 SAPButton.Click 方法可能会导致浏览器出现延迟。 变通方法: 执行以下某项操作:
|
SAPTable 对象 |
|
SAPTable.OpenPossibleEntries |
在某些应用程序上,不会在 IE 或 Chrome 中录制 SAPTable.OpenPossibleEntries 操作。 变通方法: 先单击单元格,然后单击单元格旁边的图标以录制 OpenPossibleEntries。 删除已录制的所有其他 SetCellData 步骤。 |
SAPTable.SelectCell 方法: 常规录制 |
在 SAP WDA 7.5 应用程序中的 SAPTable 对象上使用 SelectCell 方法时:
|
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 对象。
例如,先选择或单击列表,或者在测试中使用 Select 或 Click 方法。
另请参见: