Python + WinAppDriver + Appium 对Windows桌面应用程序进行界面(UI)自动化测试

简述


WinAppDriver是微软官方提供的一款用于做Window桌面应用程序的界面(UI)自动化测试工具,并且支持Appium,而Appium本身就支持多种编程语言,这样我们就可以借助于Appium-Python-Client(Appium的python客户端)使用python来编写测试windows桌面程序的自动化测试脚本。

 

开发者模式设置


1、右键windows操作系统【开始】菜单,点击【设置】,设置界面搜索框输入“开发者”,点击【开发者设置】

 

2、开发者选项界面勾选“开发人员模式”,等待系统配置完成

 

 

 

Appium连接WinAppDriver配置


1、直接点击WinAppDriver.exe,出现这样的画面,就是正常启动了,默认启动的服务器地址是 http://127.0.0.1:4723/

2、运行Appium,启动服务器界面,不点“启动服务器”按钮,点击【File】-> 【New Session Window…】,开启一个新的会话窗口

3、因为我们是不带参数(即默认配置)启动WinAppDriver的(服务器地址为http://127.0.0.1:4723/),【远程路径】修改为“/”,同时在JSON Reprresentation那里添加如下JSON配置参数(这配置表示创建Windows操作系统桌面会话),并保存,这样下次就不用重复添加了

4、点击【启动会话】,可以看到WinAppDriver运行窗口打印连接成功的日志

 

WinAppDriver支持的查找元素定位方式


Client API Locator Strategy Matched Attribute in inspect.exe Example
FindElementByAccessibilityId accessibility id AutomationId AppNameTitle
FindElementByClassName class name ClassName TextBlock
FindElementById id RuntimeId (decimal) 42.333896.3.1
FindElementByName name Name Calculator
FindElementByTagName tag name LocalizedControlType (upper camel case) Text
FindElementByXPath xpath Any //Button[0]

上图方法是C#的版本,python版本就是对应的把大写变小写,单词间以下划线(即_)隔开, 如FindElementByAccessibilityId 对应的就是好find_element_by_accessibility_id。

【Matched Attribute in inspect.exe】列表示的是相应查找方法的定位器参数匹配的是inspect.exe(元素侦测工具)显示的元素中的哪个属性,比如accessibility id 匹配的就是inspect.exe中元素的AutomationId属性。inspect.exe这个工具是用来查看运行软件(uwp、win32、win form、wpf)的 UI 元素的 Name、ID、Text 等等。包含在 Windows SDK 中。最新的Microsoft Visual Studio版本默认包含Windows SDK,可以在Windows SDK文件夹下找到该inspect.exe工具,该文件夹通常是C:Program Files (x86)Windows Kits10binx86

关于FindElementByXPath方法的示例,我看的时候感觉有摸不清怎么写xpath,就算配合上面inspect.exe侦测元素图,也还是蒙,我们可以利用调试代码建立会话后,调用driver的page_source属性打印出xml格式的元素树,以上图为例:

 

VNC Viewer 连接远程电脑桌面 UI自动化测试的示例代码


 

完整示例代码:https://github.com/hotswwkyo/WinAppUITest

文章知识点与官方知识档案匹配,可进一步学习相关知识Python入门技能树首页概览212697 人正在系统学习中

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2021年3月1日
下一篇 2021年3月1日

相关推荐