Airtest:Windows桌面应用自动化测试一
- 一、为什么选择Airtest?
- 二、官方文档
- 三、环境搭建
- 四、简易操作
- 1、模拟双击桌面应用
- 2、连接应用窗口
- (1)嵌入方式连接(2种方式连接应用窗口)
- (2)非嵌入方式连接
- (3)使用脚本连接应用
- (4)注意事项
- 3、编写代码时,图片与代码的转换
- 4、运行程序时,要求可见
- 5、连接32位应用要求32位python
- 6、录制脚本
一、为什么选择Airtest?
1、因为它集成了pywinauto
2、我相信他应该是比pywinauto更强大的东西
3、我想使用它实现Windows桌面应用自动化
二、官方文档
1、中文
欢迎使用 - Airtest Project Docs
Airtest Project Docs
https://airtest.doc.io.netease.com/
2、github
Airtest — airtest 文档
https://airtest.readthedocs.io/zh_CN/latest/README_MORE.html
三、环境搭建
1、使用官方推荐的Airtest IDE
四、简易操作
1、模拟双击桌面应用
(1)使用IDE连接桌面(2种方式)
(2)点击touch去选择图标,并双击
(3)注意事项
如果没有连接桌面,可能点击touch没法选择,或者touch直接置灰,而且运行时将报错
(4)验证结果
这个双击桌面应用图标并没有成功打开应用
2、连接应用窗口
(1)嵌入方式连接(2种方式连接应用窗口)
不推荐嵌入方式连接桌面应用,因为桌面应用界面太大了,不像手机应用友好。当然,可以单独作为一个窗口分离出来,只是会有一些不兼容或不好用的情况,如窗口改变会自动从IDE分离出来。但是,这个功能有着非常鸡肋(至少1.2.13的win应用是这样)的脚本录制功能,可在写代码阶段使用,需要以嵌入的方式录制。
(2)非嵌入方式连接
设置好后按照嵌入式方式连接窗口的操作步骤,即可实现连接
(3)使用脚本连接应用
① 使用窗口句柄
不推荐这种方式,因为这个句柄会改变。
auto_setup(__file__,devices=["Windows:///133194"])
② 使用正则表达式匹配窗口TITLE
推荐使用这种方式,窗口TITLE一般不变。
例如匹配“吹梦到西洲”后面跟着换行符以外的任意字符的窗口title
auto_setup(__file__,devices=["Windows:///?title_re=吹梦到西洲.*"])
③ 连接WINDOWS桌面
不指定devices具体参数,连接的就是桌面。
auto_setup(__file__,devices=["Windows:///"])
不指定devices参数,将没有连接对象而给出报错信息,或连接IDE已经连接的对象成功(对象中有该目标时成功,没有将报错)
auto_setup(__file__)
(4)注意事项
① 运行代码时,最好不要通过IDE连接窗口,而是通过代码连接
②运行代码的连接对象,如果要通过IDE连接,代码应该与实际连接对象保持一致
3、编写代码时,图片与代码的转换
4、运行程序时,要求可见
(1)对象不可见时,将会报错
(2)IDE内的图标也会被点击
解决方案:要么加延时,运行后将IDE缩到最小;要么指令运行代码;要么脚本里指定连接对象运行(需要注意,如果是桌面,将是全局的)
5、连接32位应用要求32位python
如图提示,要求应用连接时,python位数与应用保持一致,这种情况可以使用句柄方式操作(虽然不推荐)。
6、录制脚本
这个功能在录制win应用脚本时,并不好用,如双击图标不能录制、输入字符不能录制等等,目前(1.2.13的win应用录制)非常鸡肋。