我正在尝试定义一个函数,它通过使用FlaUI在C#中测试程序的目标状态来展开或折叠给定的TreeItem。
我能够找到元素,但无法访问任何用于展开和折叠TreeItem元素的信息或方法。在尝试设置currentPattern变量时,我得到了以下错误。我也不能只在TreeItem上运行展开和折叠方法。
错误: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;
}我使用的是3.2.0版本的FlaUI.Core和FlaUI.UIA2。
发布于 2021-11-30 09:58:53
看起来你的TreeItems就是不支持UIA折叠/展开模式。存在支持该模式的嵌套或父元素(使用任何检查工具进行检查),或者需要使用键盘或鼠标来折叠/展开。
https://stackoverflow.com/questions/70096089
复制相似问题