Appium: Windows系统桌面应用自动化测【WinAppDriver工具简介】
一、元素识别工具
WinApp元素识别工具有很多,例如WinSpy、AccEvent、Inspect。最早的时候使用Inspect工具识别WinApp上的标题栏、菜单栏、工具栏、树视图及数据视图,但是随着技术的发展和人们的需求变化,微软推出了Accessibility Insights工具代替Inspect,在Inspect官网文档中也建议用户使用Accessibility Insights工具。
-
WinApp控件识别就可借助Accessibility Insights For Windows工具,该工具是微软官网推荐的一个辅助工具,可帮助测试人员轻松获取WinApp元素属性,比Inspect工具功能更丰富、界面更清爽、操作更方便。
-
作为官方的组件元素识别工具,inspect.exe 集成于 Windows SDK
如果本地不存在该文件,可以通过下面链接进行安装
https://download.microsoft.com/download/4/d/2/4d2b7011-606a-467e-99b4-99550bf24ffc/windowssdk/winsdksetup.exe -
相比 inspect.exe,FlaUInspect 界面更简洁,功能更易用( 推荐 )
项目地址:https://github.com/FlaUI/FlaUInspect
本文主要介绍 Accessibility Insights For Windows
二、安装
-
进入Accessibility Insights工具下载页面Accessibility Insights,选择检查Windows应用程序,然后下载。
-
下载完成后双击运行,根据提示操作即可完成安装。启动Accessibility Insights For Windows程序
三、使用
Accessibility Insights For Windows工具主要有三个功能,分别是Live Inspect、FastPass和Troubleshooting。
- Live Inspect允许开发人员将鼠标悬停在元素上方或设置键盘焦点来验证应用程序中的元素属性是否正确;
- FastPass通过简单的两步操作就可以帮助开发人员在5分钟之内识别常见的、影响较大的可访问性问题;
- Troubleshooting允许用户诊断和修复特定的可访问性问题。
WinApp自动化测试中需要借助Accessibility Insights For Windows工具的Live Inspect功能,获取元素属性,对元素进行定位或状态判断。
(1)Live Inspect功能的使用。
- 打开Accessibility Insights For Windows工具。
- 进入Inspect界面,点击左侧导航栏的【Inspect】图标进入Live Inspect模式,
- 选择检查对象为元素【Element】,在Inspect界面的菜单栏中,将【What to select:】值选择成Element,
(2)Inspect界面的菜单栏中一共有5个菜单。从左至右依次是检查对象、高亮显示、元素实时追踪、加载测试或事件文件。
-
检查对象(What to select)
是一个下拉选择框,选项有Element和Entire app两项。一般情况下,我们选择Element就可以了,在UIA树(UI Automation Tree,简写为UIA Tree)中可以清楚看到每个元素所在的位置。 -
高亮显示
默认会开启高亮显示,在选择元素或组件时,会在应用程序中高亮显示选择的区域。关闭后选择区域就不会高亮显示。 -
元素实时追踪
默认是开启状态,会跟随监听的应用程序页面变化而动态显示元素。关闭后不会动态显示应用程序的最新元素。 -
定时器
内置的一个定时器,用以设置自动检查的延迟时间,自动检查中使用,我们暂时使用不到。 -
加载测试或事件文件
用来加载事先保存的测试文件或事件监控文件,我们暂时使用不到。
(3) 查看元素属性
选择应用程序中的元素查看其属性。例如查看写字板中的字体加粗按钮,首先鼠标悬浮在写字板字体区域,然后鼠标移动到Accessibility Insights For Windows工具中UIA树下【按钮 ‘加粗’】节点,接着左键单击,即可在右侧的【DETAILS】详情区域下看到元素的属性,
从详情区域显示的内容可以知道,字体加粗按钮的Name属性值为“加粗”,ControlType属性值为“Button[50000]”,LocaizedControlType属性值为“按钮”,IsKeyboardFocusable属性值为“True”,BoundingRectangle属性值为“[l=365,t=232,r=388,b=254]”。
注意:从UIA树中可以看到,第一个节点是窗格 ‘桌面 1’,即桌面窗口,也称为Root窗口。Root窗口下面节点才是应用程序窗口。