uiautomation
1、简介
UIAutomation微软提供的UI自动化库,主要用AutomationElement类来表示UI 自动化目录树中的一个UI自动化元素,.NET windows的窗体应用程序和WPF应用程序
2、体系
- 在服务端由UIAutomationProvider.dll和UIAutomationtypes.dll提供
- 在客户端由UIAutomationClient.dll和UIAutomationTypes.dll提供
- UIAutomationCore.dll为UI自动化的核心部分,负责Server端和Client端的交互
- UIAUtomationClientSideProvides.dll为客户端程序提供自动化支持
3、UI自动化流程
项目中一定要添加引用:
使用UISpy查看控件属性值
Process p = Process.Start(@"C:\Windows\system32\calc.exe");//启动应用程序
Thread.Sleep(2000);
AutomationElement desktop = AutomationElement.RootElement;//获取RootElement
AutomationElement calcframe = desktop.FindFirst(TreeScope.Descendants | TreeScope.children,
new PropertyCondition(AutomationElement.NameProperty, "计算器"));//获取应用程序
AutomationElement sevenbtn = calcframe.FindFirst(TreeScope.Descendants | TreeScope.Children,
new PropertyCondition(AutomationElement.NameProperty, "7"));//获取控件
InvokePattern ivkp = (InvokePattern)sevenbtn.GetCurrentPattern(InvokePattern.Pattern);
ivkp.Invoke(); //触发控件事件
执行效果:
注:PropertyCondition类是用来对相关属性进行条件匹配,在控件树中查找控件时,可以通过最佳匹配来找到相应的控件