getNodeText()不返回对象管理器搜索树的文本

时间:2015-03-23 12:39:18

标签: tree sap silktest

我在SAP中看到以下搜索树:

SAP object manager search tree

我试图验证该树的内容,主要是我想获取为节点显示的文本。我使用getNodeText() [MicroFocus]来获取节点的文本,但它为所有节点返回一个空字符串。

作为替代方案,我尝试getItemText() [MicroFocus] "HierarchyHeader"作为itemName参数。仍然没有运气。

从Silk4J的角度来看,树看起来像这样,这使得无法识别节点:

SAP object manager search tree from Silk4J

我甚至尝试使用getNodeAbapImage() [MicroFocus]返回的图标来识别节点,但这也会返回一个空字符串。

目前我还没有机会识别搜索树中的节点。有没有办法获取节点文本?解决方法也是可以接受的。

我使用的是Silk4J 15.5 Hotfix 5(15.5.5.7099)。

1 个答案:

答案 0 :(得分:1)

我使用SAP脚本记录器查看单击某些节点时生成的脚本,并记录以下内容:

session.findById("wnd[0]/...").selectItem "          2","&Hierarchy"

然后我尝试在"&Hierachy"中使用"HierarchyHeader"代替getItemText(),但它确实有效。

接下来,我弄清楚文本"&Hierarchy"的来源,以便我没有硬编码的魔术常量。我发现它是getColumnNames().get(0)。由于树类型为COLUMN且仅显示一列,因此索引应始终为0

由于getNodeText()适用于SAP中的其他树,因此我实施了以下回退策略:

@Override
public String getNodeText(String nodeKey)
{
    String nodeText = tree.getNodeText(nodeKey);
    if (StringUtils.isEmpty(nodeText))
    {
        nodeText = getItemText(nodeKey, tree.getColumnNames().get(0));
    }
    return nodeText;
}