【转】UIAutomation

UIAutomation  UIAutomation是微软从WindowsVista开始推出的一套全新UI自动化测试技术,简称UIA。在最新的WindowsSDK中,UIA和MSAA等其它支持UI自动化技术的组件放在一起发布,叫做WindowsAutomationAPI。  和前面的介绍相比,我倾向于认为UIA是一项自动化测试“技术”,而MSAA和Win32API只是实现自动化…

大家好,又见面了,我是你们的朋友全栈君。

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

【转】UIAutomation

【转】UIAutomation

【转】UIAutomation

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/125578.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • urdf 学习笔记一

    urdf 学习笔记一学习写urdf有几个地方需要注意1.一定要记住它使用的是右手坐标系。x正方向朝左,y正方向向内,z轴正方向朝上2.构建树结构,即写link和joint3.每个link的参考坐标系都在它的底

    2022年8月4日
    7
  • 四阶龙格库塔法的基本原理_隐式龙格库塔法

    四阶龙格库塔法的基本原理_隐式龙格库塔法龙格库塔法的基本原理该算法是构建在数学支持的基础之上的。对于一阶精度的拉格朗日中值定理有:对于微分方程:y’=f(x,y)y(i+1)=y(i)+h*K1K1=f(xi,yi)当用点xi处的斜率近似值K1与右端点xi+1处的斜率K2的算术平均值作为平均斜率K*的近似值,那么就会得到二阶精度的改进拉格朗日中值定理:y(i+1)=y(i)+[h*(K1+K2)/2]K1=f(xi,yi)K2=f(…

    2025年8月21日
    3
  • M1卡/CUID卡格式化清卡操作方法

    M1卡/CUID卡格式化清卡操作方法CUID 卡是一种可以更改 0 扇区 0 块的特殊卡 很多朋友发现 CUID 卡写入一次之后再写就不让写了 认为卡已经废了 其实可以格式化清卡以后变空白卡 再次使用 普通 M1 卡也可以用该方法清卡 把卡片恢复成空白卡 一 把 CUID 卡放读写器上 打开 IC 卡操作软件 如下图二 把该卡的 dump 文件 拖进软件 或者用 读取 dump 文件 按钮打开卡文件 然后用默认的 keyA 密码清除卡片 点 清卡 按钮 如下图三 我们看到有部分扇区提示密码错误 这是控制位改变了 keyA 密码的操作权限 也就是说 keyA 没有清除卡片的

    2025年11月25日
    4
  • 2020JAVA面试题附答案(长期更新)[通俗易懂]

    2020JAVA面试题附答案(长期更新)[通俗易懂]最新更新日志2018年12月28日:更新了springboot相关面试题,spring更多的内容(类别:开源框架)2019年11月14日:更新redis缓存雪崩,击穿,穿透相关面试题,更新了tomcat调优相关问题,更新了TCP三次握手四次握手问题JAVA基础JAVA中的几种基本类型,各占用多少字节?下图单位是bit,非字节1B=8bitString能被继承吗?…

    2022年5月28日
    42
  • acwing1057. 股票买卖 IV(状态机模型)

    acwing1057. 股票买卖 IV(状态机模型)给定一个长度为 N 的数组,数组中的第 i 个数字表示一个给定股票在第 i 天的价格。设计一个算法来计算你所能获取的最大利润,你最多可以完成 k 笔交易。注意:你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。一次买入卖出合为一笔交易。输入格式第一行包含整数 N 和 k,表示数组的长度以及你可以完成的最大交易数量。第二行包含 N 个不超过 10000 的正整数,表示完整的数组。输出格式输出一个整数,表示最大利润。数据范围1≤N≤105,1≤k≤100输入样例1:3 22

    2022年8月9日
    5
  • git查看远程仓库地址命令:「建议收藏」

    it查看远程仓库地址命令:$gitremote-v

    2022年4月13日
    72

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号