項目搭建(一):windows UIAutomation API 框架

【環境】編程

操做系統: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(); //觸發控件事件
        }
    }
}
相關文章
相關標籤/搜索