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

标签 treeview sap-gui silktest

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

SAP object manager search tree

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

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

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

SAP object manager search tree from Silk4J

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

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

我正在使用 Silk4J 15.5 修补程序 5 (15.5.5.7099)。

最佳答案

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

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

然后我尝试在 getItemText() 中使用 "&Hierachy" 而不是 "HierarchyHeader" 并且成功了。

接下来,我找出了文本 "&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;
}

关于treeview - getNodeText() 不返回对象管理器搜索树的文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29210437/

相关文章:

vba - 找不到VBA SAP偶然错误控件ID

testing - 在 silktest 中获取对象子对象的类型

testing - 多个发布同时进行时如何处理自动化脚本

javascript - KendoUI Treeview 子项显示为未定义

Python 3 和 Gtk+3 - TreeView 和行的替代颜色问题

java - 确定按钮是启用还是禁用 (Silk4J)

python - 避免Python中的重复代码并重用现有代码

wpf - Silverlight TreeView 。无法绑定(bind) "IsExpanded"属性

JavaFX 仅展开包含特定子级的 TreeView 父级

java - 连续测试运行后无法识别 SilkTest 基本状态