python+pywinauto+lackey实现PC端exe自动化
- 欢迎阅读
-
- 框架介绍
- 环境搭建
- Tim自动化
- 完整代码
- 写在最后
欢迎阅读
框架介绍
以python3为基础进行程序设计。
pywinauto是基于Python开发的,用于PC端exe自动化测试的脚本模块。虽然它可以履行元素定位的职责,但是现在的前端语言繁多,很多时候难以定位到元素属性(也可能是我才疏学浅),于是我采用了lackey。lackey也是基于python开发的第三方库。通过lackey,我们可以用图像定位的方式去定位具体元素。这种方式,在理解上简单明了,而且代码写起来也十分简洁轻松。
关于lackey的资料,在 上基本没有,我也是通过查看原生文档,才艰难了解到这个模块的魅力。
对于我这样一个英文不太好的人,简直是成吨伤害。
环境搭建
python3环境安装,无需多言,IDE也依然是采用pycharm。
pywinauto可以直接在pycharm的设置中直接安装
但是国内环境,如果 络不是特别完美,经常会被墙掉,所以建议加上镜像地址去安装。
——————————————————————————————————————————
lackey的安装方式和pywinauto方式上大致相同,pycharm安装或者pip安装均可,但是我没有找到lackey在国内的镜像地址,连清华的镜像里都没有lackey。
如果你实在受 络影响,频频安装失败,稍安勿躁,我还有最后一招。进入下面这个地址,下载lackey的安装包。
链接: https://pypi.org/project/Lackey/.
在python工程中,新建photo文件夹,将截图文件放入,保存为为‘qqhaoma.png’。
(之后所有需要定位的元素,都需要进行小范围截图,并保存到photo文件夹中)
在账 登录的这一过程中,我们总共需要截三个图:QQ 输入框、QQ密码输入框、安全登录按钮。
Tim搜索到了我希望聊天的好友,这个时候需要对列表进行双击操作,才能打开对话框
有时候退出的时候,Tim还会弹出一个提示是否确定退出的提示框,所以加一个try
至此,整个场景结束
完整代码
细心的同学可能会发现,中文并没有被发送出去。因为type方法只能响应键盘事件,并且原生文档中明确说明了此方法不支持文本。我用自己蹩脚的英文查找了整篇文档,也没有找到能对文档进行输入的方法,所以这可能是暂时的一个遗憾吧,相信随着开发者后期会进行完善。
原生文档:
链接: https://lackey.readthedocs.io/en/latest/lackey.html#.
如果想进行自动化测试场景设计的话,再加上pytest模块即可,这方面的资料比较多了。
写在最后
虽然lackey暂时在国内基本找不到相关资料,并且它暂时功能不是那么的完善,但是我觉得它是一个很合适的exe定位手段。想想我写的这篇公开贴可能是国内第一篇针对lackey的实例,内心还是比较励志的。pywinauto也有如menu_select、type_keys、click等诸多方法进行定位,只是在一些前端框架中局限性比较高。我最开始也是用notepad进行练手,inspect查看元素属性,全部用pywinauto进行定位。后来对工作的软件进行自动化时,发现一些title、class_name等属性基本无法定位。关于exe的定位,本就应该结合多种方式去互相辅助、并行使用。祝lackey以后越来越好用~
- Author
- zhengyi
文章知识点与官方知识档案匹配,可进一步学习相关知识Python入门技能树首页概览214602 人正在系统学习中
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!