【转】UIAutomation
UIAutomation
UIAutomation是微软从Windows Vista开始推出的一套全新UI自动化测试技术, 简称UIA。在最新的Windows SDK中,UIA和MSAA等其它支持UI自动化技术的组件放在一起发布,叫做Windows Automation API。
和前面的介绍相比,我倾向于认为UIA是一项自动化测试“技术”,而MSAA和Win32 API只是实现自动化测试的两种“方法”。这里区分“技术”和 “方法”的原因是, 一项“技术”往往有独立的模型,体贴的开发接口,用来专门解决某一类的问题,同时允许不同的实现细节。UIA可以被看作“技术”,是因为:
UIA定义了全新的、针对UI自动化的接口和模式。 分别是支持对UI元素进行遍历和条件化查询的TreeWalker/FindAll。定义了读写UI元素属性的UIA Property, 包括Name、 ID、Type、ClassName、Location、 Visibility等等。定义了UI元素行为的UIA Pattern, 比如Select、Expand、Resize、 Check、Value等等。 还引入了UIA Event接口,可以让测试程序在某些事件发生后得到通知,比如新窗口打开事件等。
以往的Win32和MSAA 设计出发点并不是为解决UI自动化。Win32旨在提供的通用开发接口, MSAA旨在提供程序的多种访问方式。相反,UIA的设计目的,以及新引入的模式和接口都完全是针对UI自动化测试的。
在后面的文章中我们会详细分析UIA的内部实现。可以看到,UIA这一套接口和模式,可以在不同平台,不同开发工具中实现和使用。其内部实现方式也因地制宜, 前后的兼容性都照顾得很好。 同时,UIA提供了托管的和非托管两种API,这些都是Win32和MSAA无法比拟的。
下面一段简单的C#代码演示了如何使用UIA测试Windows自带计算器完成计算3+5-2的操作(下述代码可能需要修改以适应不同Windows版本的calc.exe程序。本代码使用Visual Studio 2008针对Windows 2008 Server R2 English 编写)
【转】UIAutomation相关推荐
- java uiautomation_Java UiAutomation類代碼示例
本文整理匯總了Java中android.app.UiAutomation類的典型用法代碼示例.如果您正苦於以下問題:Java UiAutomation類的具體用法?Java UiAutomation怎 ...
- python uiautomation选择list内容_使用python UIAutomation从QQ2017(v8.9)群界面获取所有群成员详细资料,...
首先安装pip install uiautomation, 再运行本文代码.或者下载https://github.com/yinkaisheng/Python-UIAutomation-for-Win ...
- iOS Automated Tests with UIAutomation
Quick introduction Automated tests are very useful to test your app "while you sleep". It ...
- Android4.3引入的UiAutomation新框架官方简介
译者序:Google在Android 4.3发布时提供了一套新的UiAutomation框架来支持用户界面自动化测试,该框架通过运用已有的Accessibility APIs来模拟用户跟设备用户界面的 ...
- UIAutomation 自动化
Introduction UI Automation是Microsoft .NET 3.0框架下提供的一种用于自动化测试的技术,是在MSAA基础上建立的,MSAA就是Microsoft Active ...
- .NET UIAutomation实现Word文档加密暴力破解
.NET UIAutomation简介 UIAutomation是.Net 3.5之后提供的"界面自动化测试"技术,主要依靠通过Win32程序窗口和控件句柄获得控制权(反射和HOO ...
- .Net软件UI界面测试自动化--UIAutomation技术
在目前进行软件测试时,都或多或少的引入了自动化测试的概念,而且市面上也有好多软件自动化方面相关的工具,比如QTP,比如LoadRunner,但是这些工具要么售价不菲,要么对某些方面功能支持的不够全面, ...
- 深入了解UIAutomation 的API
有关UiAUiAutomation的API对象的文件名称. 1.UIAutomation中的对象都是以UIA#####开头的出现的.eg:UIAButton 2.有关Logger对象负责日志的输出 U ...
- 【DevOps进行时】C/S端界面自动化测试:微软UIAutomation实践
在界面自动化测试领域里存在许多流行的自动化测试工具,例如目前比较受欢迎的开源自动化工具Selenium.Katalon:HP旗下知名的商业软件Unified Functional Testing(更名 ...
- iOS如何退出测试软件,如何继续测试iOS应用程序,使用UIAutomation仪器,甚至应用程序退出后?(How to c...
我有一个应用程序. 有在该应用中,如果点击,退出应用程序的按钮. 我使用的测试仪器UIAutomation应用. 我想测试一下这个按钮. 但是,应用程序退出后,仪器停止给一个例外. 我想要做的是应用程 ...
最新文章
- CodeSmith实用技巧(二):使用FileNameEditor
- 计算机科学与技术第2次上机实验,天大计算机科学与技术学院—汇编语言—上机实验报告302...
- php ismethod,结合php类三种属性说明is_callable和method_exists简单区别
- 如何创建最简单的 ABAP 数据库表,以及编码从数据库表中读取数据 (上)
- Amazon Glacier的Scala客户端
- Linux驱动(6)--关于uboot
- Confluence与Jira安装及后期迁移问题记录
- mysql查询多造一列_mysql某列多值查询_MySQL
- ELKStack之极速入门(上)
- 凸包算法详解(Graham扫描法)
- zend studio php配置,Zend Studio的配置和使用
- excel power Query
- mysql分页查询如何优化_mysql分页查询优化
- 【逼你学习】让自制力提升300%的时间管理方法、学习方法分享
- Spring application使用@ 使用的问题:'@' that cannot start any token. (Do not use @ for indentation)
- 2k14无法打开因为计算机,NBA2K14虚拟光驱SCSI无法开启攻略_NBA2K14提示安装SPTD_快吧单机游戏...
- 1~20以内的加减法
- 跨境网上收款 找PayPal没错(php如何实现paypal支付)
- str.charAt(0);
- 英语语法---动词详解