【环境】

操作系统: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 Assemblies\Microsoft\Framework\.NETFramework\v4.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:\xx\xx.exe");//启动应用程序
Thread.Sleep();
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("");
//输入密码
ValuePattern password = (ValuePattern)pwdtext.GetCurrentPattern(ValuePattern.Pattern);
password.SetValue("");
//点击登录
InvokePattern ivkp = (InvokePattern)loginBtn.GetCurrentPattern(InvokePattern.Pattern);
ivkp.Invoke(); //触发控件事件
}
}
}

项目搭建(一):windows UIAutomation API 框架的更多相关文章

  1. Appium项目搭建 For windows

    1.appium又安装了最新版本,更新了,1.4.16.1,然后整理电脑的时候发现自动更新的时候不是在原来的地方进行覆盖,所以就重新安装了一遍,注意需要看下环境变量是否配置了(用户变量:C:\Appi ...

  2. 项目搭建系列之三:SpringMVC框架下使用Ehcache对象、数据缓存

    注明:该文章为以前写的文章,这里只更改了标题,无GitHub源码下载. 一.准备工作 如果已经成功搭建SpringMVC环境,那么就可以进入Ehcache的准备工作了.1.下载jar包    Ehca ...

  3. 项目搭建系列之四:SpringMVC框架下使用UrlRewrite实现地址重写

    简单记录一下UrlRewrite实现地址重写功能. 1.pom.xml 在pom.xml增加配置UrlRewrite jar <!-- URL Rewrite --> <depend ...

  4. 【从零开始搭建自己的.NET Core Api框架】(一)创建项目并集成swagger:1.1 创建

    系列目录 一.  创建项目并集成swagger 1.1 创建 1.2 完善 二. 搭建项目整体架构 三. 集成轻量级ORM框架——SqlSugar 3.1 搭建环境 3.2 实战篇:利用SqlSuga ...

  5. 基于.net EF6 MVC5+WEB Api 的Web系统框架总结(2)-业务项目搭建

    本节将介绍如何进行业务项目搭建. 本业务项目示例是简单的企业信息管理功能,业务项目采用Code First方式,搭建包括: 创建实体项目 创建实体数据表映射 创建业务处理项目 创建业务Web项目 搭建 ...

  6. 从壹开始前后端分离【 .NET Core2.0 +Vue2.0 】框架之二 || 后端项目搭建

    前言 至于为什么要搭建.Net Core 平台,这个网上的解释以及铺天盖地,想了想,还是感觉重要的一点,跨平台,嗯!没错,而且比.Net 更容易搭建,速度也更快,所有的包均有Nuget提供,不再像以前 ...

  7. Django框架搭建(windows系统)

    Django框架搭建(windows系统) 一.Django简介 开放源代码的Web应用框架,由Python语言编写,一个大而全的框架. 1.web框架介绍 具体介绍Django之前,必须先介绍WEB ...

  8. Z从壹开始前后端分离【 .NET Core2.0/3.0 +Vue2.0 】框架之二 || 后端项目搭建

    本文梯子 前言 1..net core 框架性能测试 2..net core 执行过程 3.中间件执行过程 4.AOP切面 5.整体框架结构与数据库表UML 一.创建第一个Core 1.SDK 安装 ...

  9. day97:MoFang:移动端APP开发准备&移动端项目搭建&APICloud前端框架

    目录 1.移动端开发相关概念 1.APP类型 2.移动端屏幕介绍 3.移动端自适配方案 4.元信息(meta) 2.APP开发准备 1.注册APPCLoud账号 2.下载APP开发编辑器 3.下载AP ...

随机推荐

  1. jQuery基础--插件

    1. 插件 1.1. 常用插件 插件:jquery不可能包含所有的功能,我们可以通过插件扩展jquery的功能. jQuery有着丰富的插件,使用这些插件能给jQuery提供一些额外的功能. 1.1. ...

  2. app自动化appium使用内置adb命令

    一.Appium-server使用 1.登陆页面 高级设置:可以设置Android 和 IOS 日志级别:dabug非常详尽的日志 记录python代码向他发送的请求以及他在收到请求后做的一系列处理 ...

  3. spring-第十一篇之SpEL表达式

    1.spring表达式语言,简称SpEL表达式语言

  4. python小学堂1

    sun=0 start=1 while True: start1=start%2 if start1==1: sun = start + sun elif start1==0: sun=sun-sta ...

  5. 11、numpy——字符串函数

    NumPy 字符串函数 以下函数用于对 dtype 为 numpy.string_ 或 numpy.unicode_ 的数组执行向量化字符串操作. 它们基于 Python 内置库中的标准字符串函数. ...

  6. pyspider启动错误解决(Python 3.7)

    问题一 安装好pyspider之后,在启动的时候,报出上图错误. 原因 async和await从 python3.7 开始已经加入保留关键字中. 参考: What’s New In Python 3. ...

  7. JWT 实现基于API的用户认证

    基于 JWT-Auth 实现 API 验证 如果想要了解其生成Token的算法原理,请自行查阅相关资料 需要提及的几点: 使用session存在的问题: session和cookie是为了解决http ...

  8. Codeforces Round #554 (Div. 2) C.Neko does Maths (gcd的运用)

    题目链接:https://codeforces.com/contest/1152/problem/C 题目大意:给定两个正整数a,b,其中(1<=a,b<=1e9),求一个正整数k(0&l ...

  9. Vue的计算属性缓存和method的区别在哪?

    一.先看一个例子 <div id="example"> {{ message.split('').reverse().join('') }} </div> ...

  10. 分布式理论 BASE、CAP、ACID

    CAP原理: 在理论计算机科学中,CAP定理(CAP theorem),又被称作布鲁尔定理(Brewer's theorem),它指出对于一个分布式计算系统来说,不可能同时满足以下三点: 一致性(Co ...