zoukankan      html  css  js  c++  java
  • 项目搭建(一):windows UIAutomation API 框架

    【环境】

    操作系统:Windows7

    集成环境:Visual Studio2015

    编程语言:C#

    目标框架:.net framework4.6

    1、新建项目

    Visual Studio 2015 【文件】->【新建】->【项目】->Visual C#(控制台应用程序)

    2、添加引用

    项目->引用->添加引用-> 打开引用管理器,在程序集搜索UIAutomation

    引用 UIAutomationClient、UIAutomationClientsideProviders、UIAutomationProvider、UIAutomationTypes。

     

    备注:这4个dll文件所在路径:C:Program Files (x86)Reference AssembliesMicrosoftFramework.NETFrameworkv4.0

    3、Inspect.exe和UISpy.exe工具

    查找控件属性

    查看控件模式,打开UI Spy工具,在左边的树目录中右键需要查看的控件,点击“Control Patterns”

     

    4、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:xxxx.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(); //触发控件事件
            }
        }
    }
  • 相关阅读:
    C++调用dll
    地图匹配技术在车载导航系统中的应用
    卡尔曼滤波器原理说明
    SharePoint 2010 托管元数据批量操作小工具
    SharePoint 常用开发工具
    tagMapping 在SharePoint中的应用
    SharePoint 2010 通配符搜索
    SharePoint 2010 一步步创建发布式站点 创建母版页二
    为SharePoint 文档库图片创建缩略图
    在Visual Studio 2010 快速查找Assembly 信息
  • 原文地址:https://www.cnblogs.com/happy-xiaoxiao/p/11553637.html
Copyright © 2011-2022 走看看