c# - UIA 自定义条件

标签 c# microsoft-ui-automation

有没有办法编写您自己的 System.Windows.Automation.Condition 类?我不知道这个类是如何工作的,因为它没有提供定义比较行为的公共(public)方法。

背景:我使用 UIAutomation 库来查找用户与之交互的元素,以便重复他的操作。有时我发现很难通过自动化 ID 或名称等属性访问元素。最近我发现 Windows 7 的 Aero 栏中的按钮将它们的名称更改为所选实例的名称,这让我很震惊,因为我不能再使用确切的名称进行比较了。

最佳答案

您可以使用 inspect.exe查看屏幕上任何 UI 元素的所有可用属性。这将帮助您了解在各种情况下要使用哪些属性来标识 UI 元素。 例如:我发现 AutomationId 属性在元素名称不是静态的某些情况下非常有用。

此外,如果您想查找与其名称部分匹配的元素 - 您可以使用 TrueCondition 迭代可用元素的所有树(例如:通过 FindAll 方法)和手动检查名称匹配。

关于c# - UIA 自定义条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36398182/

相关文章:

c# - 一个文件中只允许有一条 'model'语句

c# - 以下静态方法线程安全吗?

c# - 添加自定义属性

c# - 查找对类和方法的引用

c# - WPF 中的 UI 自动化

c# - 使用 UIAutomation 选择网格中存在的复选框

c# - 我该如何解决 'Microsoft.AspNetCore.NodeServices.HostingModels.NodeInvocationException'

c++ - GetClickablePoint 不适用于 UI 自动化

PowerShell 为 UIAutomation 打开远程 GUI session

c# - MS UI 自动化 - 如何从 ControlType.text 获取文本