【python自动化工具】PyAutoGUI、PyWinAuto、WinAppDriver、

1,688 阅读3分钟

1、PyAutoGUI

PyAutoGUI是以图像识别来进行模拟键盘、鼠标在界面上进行操作。

安装:

pip install pyautogui

坐标系:

默认的坐标系从屏幕左上角开始,x 轴向右增大,y 轴向下增大。所以显示器上每个点都有自己的位置。

引申一下,当知道界面上每个按钮的位置时,点击这些点,就是执行相应的操作了。

当然,这一切的前提是界面不变。大多数应用的界面、按钮位置不会变来变去。如果你有这方面需求,可以参考下locateOnScreen()函数。这个函数根据你提供的图片,在屏幕上找到像素匹配的地方。这样就不怕按钮动来动去了。

  • pyautogui的简单使用

  • https://blog.csdn.net/qq_43734041/article/details/122889565

  • 详解Python中pyautogui库的最全使用方法

  • https://www.jb51.net/article/183926.htm

2、PyWinAuto

PyWinAuto是 获取窗口对象来进行鼠标和键盘操作的。

安装:

pip install pywinauto

2.3、安装验证

from pywinauto.application import Application
app = Application().start('notepad.exe')
app.Notepad.Edit.type_keys('Hello{SPACE}World!')

安装正常的话,运行上面的代码,会打开记事本,书写“Hello World!”。其中{SPACE}表示键盘输入空格。

注:如果windows默认输入法是中文,运行上述代码可能会出现中文或者空格不能正常显示,在输入法设置中设置默认为英文即可。

3、pywinauto程序运行原理

pywinauto库很多地方都使用类的__getattribute__()属性解析方法,例如“app.Notepad”将会查找title为“Notepad”的子窗口,“app.Notepad.Edit”将会在title为“Notepad”的子窗口中查找title为“Edit”的子窗口或控件。

属性解析失败,会延迟一段时间(默认是5秒),再进行重试。超过默认时间,仍然解析失败,会抛出超时异常。如下面的代码:

app.Notepad.menu_select('文件->另存为(&A)...')
app['另存为'].Edit.type_keys(r'D:\tem\test.txt')
app['另存为']['保存(&S)'].click()

在执行第二行代码时,“另存为”对话框可能还未打开。这时属性解析将会等待一段时间,等待“另存为”对话框打开后,再继续后续的解析。这个机制很方便,避免我们显示使用time.sleep函数。

  • pywinauto教程 

  • http://t.zoukankan.com/little-kwy-p-11926182.html

  • pywinauto实现windows窗口自动化操作

  • https://www.cnblogs.com/steveni/p/15362833.html

  • pywinauto精品入门教程

  • https://blog.csdn.net/zh6526157/article/details/119859398

三、WinAppDriver

PC 端自动化最佳方案 - WinAppDriver

https://blog.csdn.net/qq_39241986/article/details/119834169

1. 前言

一提到自动化,可能大家想到的是 App 端的 Appium、Airtest、AutoJS,亦或是 Selenium、Puppeteer、Cypress 等 Web 端的自动化框架

本篇文章,我将和大家聊聊 PC 端的自动化工具 - WinAppDriver

2. 准备

WinAppDriver,全称为 Windows Application Driver,它是 Windows 上一个类似 Selenium 的 UI 自动化驱动服务框架

它支持 Appium,可以使用 Appium-Python-Client 依赖库完成对 Windows 桌面程序的自动化操作

项目地址:github.com/Microsoft/W…

需要注意的是,要使用 WinAppDriver 服务框架完成 Windows 的自动化,需要满足 Windows10 或 Windows Server 2016 以上系统

另外,它支持的应用程序包含:

  • UWP - Universal Windows Platform

  • WinForms - Windows Forms

  • WPF - Windows Presentation Foundation

  • Win32 - Classic Windows