相关自动化相关库:
PC 端自动化测试使用到的 python 模块主要有 pywinauto、win32gui、pyautogui,主要功能如下:
pywinauto:
主要使用到 Application 类,用于应用程序管理(打开与关闭应用等)、窗口管理(最小化、最大化、关闭窗口)
pywin32:
包含 win32gui、win32api、win32con 3个子模块,用于窗口管理(定位窗口、显示和关闭窗口、获取窗口位置等)
pywin32 模块是window上的,可在windows上实现自动点击这一套,linux 系统不能安装,我们项目是要在macOS上运行。
pyautogui:
屏幕控制(截屏等)、鼠标控制(移动鼠标、单击、双击、右击、拖拽等)、键盘控制(编辑、按键等)
pyautogui只能对比图像的像素进行比较,opencv用法可就太多了。
opencv:
OpenCV-Python是一个Python绑定库,旨在解决计算机视觉问题。使用Numpy,这是一个高度优化的数据库操作库,具有MATLAB风格的语法。所有OpenCV数组结构都转换为Numpy数组.
安装:pip install opencv-python==3.4.2.17。
- 背景提取
- 颜色过滤
- 边缘检测
- 用于对象识别的特征匹配
- 一般对象识别
参考学习:OpenCV最详细入门(一)-python(代码全部可以直接运行)_无乎648的博客-CSDN博客_opencv入门 python
综合上面的开源库了解与总结,目前我们在用方案是:
OpencvPicture + pyautogui 来进入按钮识别并点击。
大致流程:
- 首先人工截取一套 UI元素图片,放到资源库。用于后面自动化时:APP运行状态比对。
- 启动APP。
- 然后启动自动化程序先截取屏幕,并存成图片。
- 截屏的图片上查找APP是否存在?(即是否启动运行显示在屏幕),查找的原理是:APP的UI上有一个固定的标题名,通过文字识别。
- 查找到情况下,通过自动化移动鼠标,拖拽,双击把APP放大到全屏,这样需要找的UI元素就可以在下一次截图一览无遗。
- 现在截取整个APP UI图片,通过图像识别找到我们需要的按钮,如果是等待一个事件结束之后显示的按钮
- 上面6步骤可用while True:,循环去截图查找,直到APP执行完某个操作之后显示出来这个按钮。那我们就识别到,并移动鼠标过去,完成点击功能。
- 后面操作基本就是类似了,根据识别的不同元素进行不同操作。
其他示例参考:https://blog.csdn.net/m0_37602827/article/details/108308991
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之家整理,本文链接:https://www.bmabk.com/index.php/post/101630.html