UIAutomation使用(一)
作者:强哥   类别:Python开发    日期:2019-04-23 16:14:34    阅读:3166 次   消耗积分:0 分

和MSAA相比较:UI Automation重新设计了一套架构,无论是对传统的winform,还是新的wpf,定义了一套统一的模型,其API的使用也相对更简单。和.net framework 3.0一起,也有个UISpy的工具,提供地位所需要的元素信息能辅助大家来使用UI Automation。


1.安装UI Spy


UISpy 工具,开发人员和测试人员将能够查看应用程序的用户界面 (UI) 元素并与之交互。它随着 Microsoft Windows SDK 一起安装。


UISpy下载比较麻烦,可以随着Windows SDK一起安装,下载路径:

https://developer.microsoft.com/zh-cn/windows/downloads/windows-10-sdk,系统要求如图x-x所示。


20190423_160508_343.png

图x-x Windows SDK 配置要求


如果是win8一下,官网提示要打补丁KB2999226,当然,正常安装python3的时候如果没有提示failed的信息,一般这个补丁已经安装。


在SDK 安装路径 (uispy.exe) 的 /bin 文件夹中,也可以从“开始”菜单进行访问(“开始”/“所有程序”/“Microsoft Windows SDK”/“工具”/“UISpy”)。打开UISpy.exe,可以打开工具主界面,如图x-x所示。


20190423_160530_213.png

图x-x UISpy界面


(1)“控件视图”窗格(Control View默认),此窗格包含应用程序 UI 项的层次结构。其他视图包括“自定义视图”、“内容视图”和“原始视图”,在view选项中勾选需要的视图,如图x-x所示。


20190423_160633_521.png

图x-x UI Spy中各种视图

(a)原始视图


UI Automation树的原始视图是 AutomationElement 对象的完整树,该树的根元素是桌面。原始视图完全遵循应用程序的本机编程结构,因此是最详细的可用视图。原始视图还是其他树视图的生成基础。由于原始视图取决于基础 UI 框架,因此 WPF 按钮的原始视图将与 Win32 按钮的原始视图不同。

原始视图是通过以下方法来获取的:在不指定属性的情况下搜索元素,或者使用 RawViewWalker 在树中导航。


(b)控件视图


由于 UI Automation树的控件视图紧密映射到由最终用户查看的 UI 结构,因此它能使辅助技术产品更轻松地完成向最终用户描述 UI 并帮助最终用户与应用程序交互的任务。


控件视图是原始视图的子集。它包括原始视图中的所有 UI 项,最终用户会将这些项理解为 UI 中控件逻辑结构的交互式项或构成项。例如,列表视图标题、工具栏、菜单和状态栏等项容器构成了 UI 逻辑结构,但其本身并不是交互式 UI 项。仅针对布局设计或修饰目的而使用的非交互式项在控件视图中不显示。仅为了将控件放置在对话框中而本身不包含任何信息的面板就是这样的项。对话框中包含信息和静态文本的图形是在控件视图中显示的非交互式项。控件视图中包括的非交互式项不能接收键盘焦点。


控件视图是通过以下方法获取的:搜索 IsControlElement 属性设置为 true 的元素,或者使用 ControlViewWalker 在树中导航。


(c)内容视图


UI Automation树的内容视图是控件视图的子集。内容视图中包含用来在用户界面中传达真正信息的 UI 项(包括可以接收键盘焦点的 UI 项,以及一些不是 UI 项标签的文本)。例如,下拉组合框中的值将出现在内容视图中,因为它们表示正由最终用户使用的信息。在内容视图中,组合框和列表框均表示为 UI 项的集合,在该集合中,可以有一项(或多项)处于选中状态。由于内容视图旨在显示要呈现给用户的数据或内容,因此,内容视图中不存在如下情况:始终有一项处于打开状态,而另有一项是可以展开和折叠的。


内容视图是通过以下方法获取的:搜索 IsContentElement 属性设置为 true 的元素,或者使用 ContentViewWalker 在树中导航。


UI Spy 打开后,该窗格将显示“Desktop”节点及其第一级子节点,也就是电脑桌面上所有的快捷方式、已经打开的程序等(以上信息来自Windows官网)

(2) “属性”窗格(Properties)窗格显示选定 UI 项的属性值。

(3) “输出”窗格(output)该窗格显示应用程序引发的事件和 UI Automation异常。

 

2.UI Spy元素选取


UI Spy 提供了两种方式来选择 UI 项:焦点跟踪和悬停模式。这两种方法都会选择一个 AutomationElement。选中某项后,将会在该项周围绘制一个矩形。选定的项显示在各个打开的“视图”窗口中,该项的 UI Automation属性将显示在“属性”窗口中,如图x-x所示。


20190423_160654_814.png

图x-x 通过UI Spy选择Windows元素


(1)焦点跟踪模式:


使用 UI Spy 的焦点跟踪时,工具将跟踪具有键盘焦点的 UI 项。焦点跟踪通常用于逐项通过 UI 项以确保每一项都能收到键盘焦点。


(2)悬停模式


使用 UI Spy 的悬停模式时,将通过单击并按住 Ctrl 一段时间来选择 UI 项。若要配置时间的长度,请在“编辑”菜单上单击“设置”。如果要选择特定 UI 项,悬停模式十分方便。


3.查看属性


以QQ音乐为例,在属性窗体内,将显示出QQ音乐快捷方式在Desktop上的元素信息,如图x-x所示。

20190423_160722_835.jpg

图x-x 属性


上图已经标识出常用的几个属性,ClassName、Name和ProcessId。后面使用Python来实现自动化测试时,需要找到这些重要的属性。


下期推送:UIAutomation运用




为了答谢大家对蜗牛学院的支持,蜗牛学院将会定期对大家免费发放干货,敬请关注蜗牛学院的官方微信。


20190320_095757_834.jpg




   
版权所有,转载本站文章请注明出处:蜗牛笔记, http://www.woniunote.com/article/300
上一篇: 从艺术设计转行软件测试,他的入职月薪是8K
下一篇: 蜗牛学院没有上市,没有被风投,官网展示的就业薪资也很低,所以我选择了它!
提示:登录后添加有效评论可享受积分哦!
最新文章
    最多阅读
      特别推荐
      回到顶部