【環境】編程
操做系統:Windows7框架
集成環境:Visual Studio2015編程語言
編程語言:C#ide
目標框架:.net framework4.6工具
一、新建項目spa
Visual Studio 2015 【文件】->【新建】->【項目】->Visual C#(控制檯應用程序)操作系統
二、添加引用.net
項目->引用->添加引用-> 打開引用管理器,在程序集搜索UIAutomationcode
引用 UIAutomationClient、UIAutomationClientsideProviders、UIAutomationProvider、UIAutomationTypes。blog
備註:這4個dll文件所在路徑:C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.0
三、Inspect.exe和UISpy.exe工具
查找控件屬性
查看控件模式,打開UI Spy工具,在左邊的樹目錄中右鍵須要查看的控件,點擊「Control Patterns」
四、demo腳本
該demo腳本可啓動應用程序並進行登陸
using System.Diagnostics; using System.Threading; using System.Windows.Automation; namespace myProject01 { class Program { static void Main(string[] args) { Process p = Process.Start(@"D:\xx\xx.exe");//啓動應用程序 Thread.Sleep(10000); AutomationElement desktop = AutomationElement.RootElement;//獲取RootElement //獲取當前窗口 AutomationElement posframe = desktop.FindFirst(TreeScope.Descendants | TreeScope.Children, new PropertyCondition(AutomationElement.AutomationIdProperty, "SystemLogin")); //輸入用戶名控件 AutomationElement usertext = posframe.FindFirst(TreeScope.Children, new PropertyCondition(AutomationElement.AutomationIdProperty, "txt_no")); //輸入密碼控件 AutomationElement pwdtext = posframe.FindFirst(TreeScope.Children, new PropertyCondition(AutomationElement.AutomationIdProperty, "pb_pwd")); //登陸控件 AutomationElement loginBtn = posframe.FindFirst(TreeScope.Children, new PropertyCondition(AutomationElement.AutomationIdProperty, "btn_login")); //輸入用戶名 ValuePattern username = (ValuePattern)usertext.GetCurrentPattern(ValuePattern.Pattern); username.SetValue("0114"); //輸入密碼 ValuePattern password = (ValuePattern)pwdtext.GetCurrentPattern(ValuePattern.Pattern); password.SetValue("0114"); //點擊登陸 InvokePattern ivkp = (InvokePattern)loginBtn.GetCurrentPattern(InvokePattern.Pattern); ivkp.Invoke(); //觸發控件事件 } } }