一些可能导致这个问题的原因:
- 目标窗体的
Name
属性为空或不可访问-
AutomationElement.Current.Name
依赖 UI Automation 提供的属性,某些窗口可能没有正确实现 UI 自动化支持,导致 Name 访问失败或长时间等待。 - 部分应用(尤其是 Win32 或 WPF)在无焦点时不会返回 Name,或者 Name 依赖某些动态加载数据。
-
- 目标窗体在 UI Automation 树中的状态异常
- 由于某些安全限制或窗口架构(比如权限问题),
FindFirst
可能会卡住。 -
rootElement.FindFirst
可能在查找时遇到隐藏或不可访问的窗口。
- 由于某些安全限制或窗口架构(比如权限问题),
可以尝试下面的方案:
- 用AutomationElement.GetCurrentPropertyValue Method代替
Current.Name
,尝试GetCurrentPropertyValue(AutomationElement.NameProperty)
。 - 可以尝试
TreeWalker
遍历 UI 结构作为FindFirst
的替代方案。
如果答案是正确的,请点击“接受答案”并点赞。 如果您对此答案还有其他疑问,请点击“评论”。 **注意:如果您想接收相关电子邮件,请按照我们的文档中的步骤启用电子邮件通知。 **