Automated tests 如何获取SAP上下文菜单的功能代码?

Automated tests 如何获取SAP上下文菜单的功能代码?,automated-tests,sap,silktest,Automated Tests,Sap,Silktest,我正在使用Silk4J(16.0.1.7470)自动化SAP应用程序的测试。有一棵树,我在其中选择了一个节点。我可以使用以编程方式打开关联菜单 现在,我想模拟单击其中一个上下文菜单项。看来这是可以做到的。但是,此函数需要一个函数代码 如何获取上下文菜单上可用的功能代码列表? 我试过了,但结果是例外 java.lang.RuntimeException: Error executing 'SelectContextMenuItemByText'. An unexpected COM excepti

我正在使用Silk4J(16.0.1.7470)自动化SAP应用程序的测试。有一棵树,我在其中选择了一个节点。我可以使用以编程方式打开关联菜单

现在,我想模拟单击其中一个上下文菜单项。看来这是可以做到的。但是,此函数需要一个函数代码

如何获取上下文菜单上可用的功能代码列表?

我试过了,但结果是例外

java.lang.RuntimeException: Error executing 'SelectContextMenuItemByText'. An unexpected COM exception occurred at SAP Frontend Server (The method got an invalid argument.). .
at com.borland.silktest.jtf.internal.Agent.convertException(Agent.java:294)
at com.borland.silktest.jtf.internal.Agent.invoke(Agent.java:394)
at com.borland.silktest.jtf.AbstractTestObject.invoke(AbstractTestObject.java:462)
at com.microfocus.silktest.jtf.sap.SapTree.selectContextMenuItemByText(SapTree.java:1650)
...
我也尝试过,但该方法没有参数,所以我想知道它将选择哪个项目。

使用SAP脚本记录器 获取功能代码的一种方法是使用SAP脚本录制和回放(德语屏幕截图)录制操作

在记事本中打开录制的脚本并查找操作

session.findById(...).selectContextMenuItem "DELETE_RELATION"
“删除关系”
是您要查找的功能代码

使用Silk4J SAP中的上下文菜单是上下文菜单的集合。这可以解释没有参数的
select()
方法。这可能适用于叶上下文菜单项

要以编程方式转储所有函数代码,可以使用该函数并在所有上下文菜单上调用它
getText()
获取人类可读的文本

List<SapContextMenu> menus = tree.getDesktop().findAll("//SapContextMenu");
for(SapContextMenu menu:menus){
    try{
        logger.debug("Function code: "+menu.getName());
        logger.debug("Displayed text: "+menu.getText());
        logger.debug("");
    }
    catch(Exception e){
        logger.debug(e); // Didn't happen for me
    }                                                        
}
List menus=tree.getDesktop().findAll(“//SapContextMenu”);
用于(SapContextMenu:菜单){
试一试{
debug(“函数代码:”+menu.getName());
debug(“显示的文本:“+menu.getText());
logger.debug(“”);
}
捕获(例外e){
logger.debug(e);//我没有这样做
}                                                        
}