0

我正在尝试定义一个函数,该函数使用 FlaUI 按目标状态展开或折叠给定的 TreeItem,以测试 C# 中的程序。

我能够找到该元素,但我无法访问任何用于展开和折叠 TreeItem 元素的信息或方法。尝试设置currentPattern变量时出现以下错误。我也不能只在 TreeItem 上运行 Expand 和 Collapse 方法。

错误: FlaUI.Core.Exceptions.PatternNotSupportedException: 'The requested pattern 'ExpandCollapse [#10005]' is not supported'

我写的函数是:

public TreeItem ToggleTreeNode(string inNodeName, ExpandCollapseState inTargetState, AutomationElement inParentNode = null)
{
    TreeItem nodeElement = null; //TreeItem nodeElement = null;
    if (inParentNode == null)
    {
        nodeElement = mSTGOCMainForm.FindFirstDescendant(cf => cf.ByName(inNodeName)).AsTreeItem();
    }
    else
    {
        nodeElement = inParentNode.FindFirstDescendant(cf => cf.ByName(inNodeName)).AsTreeItem();
    }
    
    // Collapse or Expand
    var currentPattern = nodeElement.Patterns.ExpandCollapse.Pattern;
    var currentState = currentPattern.ExpandCollapseState.Value;

    if (inTargetState != currentState)
    {
        //Then do the operation
        if (inTargetState == ExpandCollapseState.Collapsed)
        {
            nodeElement.Collapse();
        }
        else if (inTargetState == ExpandCollapseState.Expanded)
        {
            nodeElement.Expand();
        }
    }

    return nodeElement;
}

我正在使用 FlaUI.Core 和 FlaUI.UIA2,版本 3.2.0。

4

1 回答 1

0

看来您的 TreeItems 只是不支持 UIA Collapse/Expand 模式。要么存在支持该模式的嵌套或父元素(使用任何检查工具检查),要么您需要使用键盘或鼠标来折叠/展开。

于 2021-11-30T09:58:52.540 回答