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相关推荐

  1. java uiautomation_Java UiAutomation類代碼示例

    本文整理匯總了Java中android.app.UiAutomation類的典型用法代碼示例.如果您正苦於以下問題:Java UiAutomation類的具體用法?Java UiAutomation怎 ...

  2. python uiautomation选择list内容_使用python UIAutomation从QQ2017(v8.9)群界面获取所有群成员详细资料,...

    首先安装pip install uiautomation, 再运行本文代码.或者下载https://github.com/yinkaisheng/Python-UIAutomation-for-Win ...

  3. iOS Automated Tests with UIAutomation

    Quick introduction Automated tests are very useful to test your app "while you sleep". It ...

  4. Android4.3引入的UiAutomation新框架官方简介

    译者序:Google在Android 4.3发布时提供了一套新的UiAutomation框架来支持用户界面自动化测试,该框架通过运用已有的Accessibility APIs来模拟用户跟设备用户界面的 ...

  5. UIAutomation 自动化

    Introduction UI Automation是Microsoft .NET 3.0框架下提供的一种用于自动化测试的技术,是在MSAA基础上建立的,MSAA就是Microsoft Active ...

  6. .NET UIAutomation实现Word文档加密暴力破解

    .NET UIAutomation简介 UIAutomation是.Net 3.5之后提供的"界面自动化测试"技术,主要依靠通过Win32程序窗口和控件句柄获得控制权(反射和HOO ...

  7. .Net软件UI界面测试自动化--UIAutomation技术

    在目前进行软件测试时,都或多或少的引入了自动化测试的概念,而且市面上也有好多软件自动化方面相关的工具,比如QTP,比如LoadRunner,但是这些工具要么售价不菲,要么对某些方面功能支持的不够全面, ...

  8. 深入了解UIAutomation 的API

    有关UiAUiAutomation的API对象的文件名称. 1.UIAutomation中的对象都是以UIA#####开头的出现的.eg:UIAButton 2.有关Logger对象负责日志的输出 U ...

  9. 【DevOps进行时】C/S端界面自动化测试:微软UIAutomation实践

    在界面自动化测试领域里存在许多流行的自动化测试工具,例如目前比较受欢迎的开源自动化工具Selenium.Katalon:HP旗下知名的商业软件Unified Functional Testing(更名 ...

  10. iOS如何退出测试软件,如何继续测试iOS应用程序,使用UIAutomation仪器,甚至应用程序退出后?(How to c...

    我有一个应用程序. 有在该应用中,如果点击,退出应用程序的按钮. 我使用的测试仪器UIAutomation应用. 我想测试一下这个按钮. 但是,应用程序退出后,仪器停止给一个例外. 我想要做的是应用程 ...

最新文章

  1. CodeSmith实用技巧(二):使用FileNameEditor
  2. 计算机科学与技术第2次上机实验,天大计算机科学与技术学院—汇编语言—上机实验报告302...
  3. php ismethod,结合php类三种属性说明is_callable和method_exists简单区别
  4. 如何创建最简单的 ABAP 数据库表,以及编码从数据库表中读取数据 (上)
  5. Amazon Glacier的Scala客户端
  6. Linux驱动(6)--关于uboot
  7. Confluence与Jira安装及后期迁移问题记录
  8. mysql查询多造一列_mysql某列多值查询_MySQL
  9. ELKStack之极速入门(上)
  10. 凸包算法详解(Graham扫描法)
  11. zend studio php配置,Zend Studio的配置和使用
  12. excel power Query
  13. mysql分页查询如何优化_mysql分页查询优化
  14. 【逼你学习】让自制力提升300%的时间管理方法、学习方法分享
  15. Spring application使用@ 使用的问题:'@' that cannot start any token. (Do not use @ for indentation)
  16. 2k14无法打开因为计算机,NBA2K14虚拟光驱SCSI无法开启攻略_NBA2K14提示安装SPTD_快吧单机游戏...
  17. 1~20以内的加减法
  18. 跨境网上收款 找PayPal没错(php如何实现paypal支付)
  19. str.charAt(0);
  20. 英语语法---动词详解

热门文章

  1. 火热纪念币纪念钞售卖,市场表现如何
  2. 荣耀9x搭载鸿蒙,荣耀老用户不用慌:荣耀9X手机将在年内全部升级华为鸿蒙操作系统...
  3. 高考季,17岁VS人工智能,谁的作文更胜一筹?
  4. uni-app接入阿里云认证SDK(号码认证服务),App客户端一键登方式
  5. 智能离子除臭杀菌机,公厕异味克星
  6. 团队作业7—事后诸葛亮分析
  7. 女人教你如何追女孩子
  8. uni-app 104退出和解散群聊(二)
  9. im即时通讯开发:群聊消息如此复杂,如何保证不丢不重
  10. 思想随笔(四)我为什么而活着(续)