Pywinauto是一组Python模块,使用它可以编写Python程序模拟对Windows窗口的操作,方便地发送鼠标和键盘事件并控制对话框及其组件。
安装
pip install pywinauto
写在前面 使用Pywinauto操作窗口应用之前,你需要知道该应用允许使用哪种访问技术进行访问,即pywinauto的backend模式。 目前Windows系统下被支持的访问技术主要有两种: ? Win32 API (backend="win32") - 是Windows下默认的访问技术 – MFC, VB6, VCL, 简单的WinForms 和大多数传统应用使用这种模式 ? MS UI Automation (backend="uia") – WinForms, WPF, Windows商店应用, Qt5, 浏览器等使用此模式
操作过程
下面以windows自带程序notepad作为例子,介绍一下Pywinauto的操作过程。注:notepad.exe应使用win32模式。
1. 初始化,本例我们使用uia模式
from pywinauto.application import Application
#默认win32模式
app = Application()
#或者使用UIA模式
app = Application(backend="uia")
2. 连接应用或者启动应用
#启动应用
app.start("Notepad.exe")
#或者连接已打开的应用
app.connect("Notepad.exe")
3. 模拟操作
#模拟键盘输入字符
app.UntitledNotepad.Edit.type_keys("this is an example.{HOME}", with_spaces=True)
#模拟选择菜单
app.UntitledNotepad.menu_select("Edit -> Replace")
#模拟对话框输入
app.UntitledNotepad.Replace.Edit0.set_text("this")
app.UntitledNotepad.Replace.Edit2.set_text("This")
#模拟对话框按钮点击
app.UntitledNotepad.Replace.ReplaceAll.click()
app.UntitledNotepad.Replace.Cancel.click()
?一些技巧
TBD
|