缺少孩子将 inspect.exe 与 UIAComWrapper.dll 进行比较返回 AE.RootElement.FindAll(TreeScope.Children, Condition.Tr
Posted
技术标签:
【中文标题】缺少孩子将 inspect.exe 与 UIAComWrapper.dll 进行比较返回 AE.RootElement.FindAll(TreeScope.Children, Condition.TrueCondition) 的值【英文标题】:Missing child comparing inspect.exe to UIAComWrapper.dll returned value of AE.RootElement.FindAll(TreeScope.Children, Condition.TrueCondition) 【发布时间】:2018-02-18 22:59:24 【问题描述】:我正在尝试与第三方应用程序交互。我想保存客户端显示的文本值以供审核。
使用 UISpy.exe 时缺少许多元素,使用 Inspect.exe 时缺少完整列表。这让我相信,为了与这个应用程序交互,我必须使用 UIAComWrapper.dll。
这是inspect.exe的结果,里面有完整的信息,我想存储它。
inspect.exe 与所有子项:
当我运行以下代码时,它会返回除一个已编辑元素之外的所有元素。
Dim rootChildren = AutomationElement.RootElement.FindAll(TreeScope.Children, Condition.TrueCondition)
如何获取根元素的子元素的完整列表?
当我使用标准 UIAutomationClient.dll(无 com 包装器)时,我得到了 rootElement 的完整子级列表,包括已编辑的元素。但是,该元素没有子元素,除了标题栏。
我想准确检索此元素的 inspect.exe 显示的内容,然后存储树。
【问题讨论】:
【参考方案1】:第三方应用程序以管理员身份运行,但 Visual Studio 不是。当 VS 以管理员身份打开并运行时,rootElement.children 列表与 inspect.exe 匹配。
【讨论】:
以上是关于缺少孩子将 inspect.exe 与 UIAComWrapper.dll 进行比较返回 AE.RootElement.FindAll(TreeScope.Children, Condition.Tr的主要内容,如果未能解决你的问题,请参考以下文章