相关自动化相关库:

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


项目需求:

运行环境:macOS

功能:        原客户程序不允许修改,现在要求:无需人工值守。

                  那么,我们需要实现自动点击 UI 界面上开始按钮。


综合上面的开源库了解与总结,目前我们在用方案是:

OpencvPicture + pyautogui 来进入按钮识别并点击。

   大致流程:

  1. 首先人工截取一套 UI元素图片,放到资源库。用于后面自动化时:APP运行状态比对。
  2. 启动APP。
  3. 然后启动自动化程序先截取屏幕,并存成图片。
  4. 截屏的图片上查找APP是否存在?(即是否启动运行显示在屏幕),查找的原理是:APP的UI上有一个固定的标题名,通过文字识别。
  5. 查找到情况下,通过自动化移动鼠标,拖拽,双击把APP放大到全屏,这样需要找的UI元素就可以在下一次截图一览无遗。
  6. 现在截取整个APP UI图片,通过图像识别找到我们需要的按钮,如果是等待一个事件结束之后显示的按钮
  7. 上面6步骤可用while True:,循环去截图查找,直到APP执行完某个操作之后显示出来这个按钮。那我们就识别到,并移动鼠标过去,完成点击功能。
  8. 后面操作基本就是类似了,根据识别的不同元素进行不同操作。

 

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐