【发布时间】:2014-08-12 05:15:52
【问题描述】:
我正在将一些 UI 自动化从 System.Windows.Automation API 移植到本机 UIAutomationClient API,并且遇到了一个感觉很简单的问题,但找不到解决方案。
我需要使用以下代码来查找 UI 元素:
IUIAutomationElement namedElement = currentWindow.FindFirst(UIAutomationClient.TreeScope.TreeScope_Descendants, nameCondition);
这里,nameCondition 对象应该是一个 IUIAutomationCondition 来将元素的名称与字符串进行比较。
使用旧的 System.Windows.Automation 我会这样写:
PropertyCondition nameCondition = new PropertyCondition(AutomationElement.NameProperty, "name");
但是,我不知道如何使用 UIAutomation API 创建 PropertyCondition。我所见过的唯一例子似乎暗示了以下几点:
IUIAutomationCondition nameCondition = cuiAutomation.CreatePropertyCondition(propertyIdName, "name");
这里,propertyIdName 应该是一个表示 NameProperty 的 int。但是,我无法弄清楚如何在这里获得正确的 int 。我认为它必须作为常量在 UIAutomation API 中的某个地方,但找不到它。
【问题讨论】:
标签: c# user-interface automation