Pywinauto学习

目录

概念

原理

环境搭建

实例演示

官网链接


概念

Pywinauto是一组用于自动化Microsoft Window GUI的python模块。简单来说,就是允许你操作键盘和鼠标发送到窗口对话框和控件。

原理

主要是对windows标准控件的一系列动作可编程处理。包括对窗口的指定、鼠标或键盘操作、获得控件属性等等。程序的开始是对应用启动和连接。获得程序连接后,pywinauto通过窗口的名称、类名、是否可见等属性寻找匹配的窗口,进而通过类似方法寻找用户所需的控件。然后,用户可通过易理解的编程方式对指定控件进行相关操作的编程,包括鼠标点击、键盘输入、获取控件属性等。

环境搭建

前提:已安装好python环境(建议使用python3.X)

  1. 命令行安装

        pip install pywinauto 

     2. 离线安装

  • Pywin32(python调用Windows api的库)
  • Comtypes(COM接口的调用)
  • Six(兼容python2和python3的库)
  • Pillow(可选,截图)
  • 从Releases · pywinauto/pywinauto · GitHub中下载最新的pywinauto后,解压运行 python setup.py install

        (PS:建议使用第一种命令行安装,方便)

    3.安装成功后,验证是否安装成功

        通过代码验证

from pywinauto.application import Application

        若无报错即可说明pywinauto安装成功

        通过命令行验证

        终端输入 pip list,输出pywinauto即说明安装成功

实例演示

以记事本为例

#导入
from pywinauto.application import Application
# 启动程序
app = Application(backend='uia').start('Notepad.exe')
# 通过程序进程连接程序
app.connect(path='Notepad.exe')
#根据窗口标题获取窗口
win = app['无标题-记事本']
#获取当前窗口控件信息
win.print_control_identifiers()
#寻找控件、操作控件
#写入数据,写法一
win.child_window(class_name='Edit').wait("exists",timeout=6).type_keys('这是测试数据')
#写法二
win.Edit.type_keys('测试数据')
#保存数据:使用键盘 ctrl:^、alt:% enter{enter}
from pywinauto.keyboard import send_keys
send_keys('^s')
#保存数据:使用控件
'''win.menu_select("文件(F)->保存(S)")'''
win2 = win['另存为']
win2.child_window(class_name='Edit').wait("exists",timeout=15).type_keys('test.txt')
win2.child_window(title='保存(S)').wait("exists",timeout=15).click()

注:启动程序时,需要确认程序是适用于哪种可访问技术,即backend的值是win32还是uia:

backend=win32(默认是win32,使用MFC, VB6, VCL, WinForms技术开发)

backend=uia(使用WinForms, WPF, Store apps, Qt技术开发)

如果不能确定程序到底适用于那种backend,可以借助于GUI对象检查工具,常用的检查工具有Inspect.exe,Spy++ 等,此处以inspect.exe为例,选择UI Automation有内容显示则是uia模式,否则为win32

Pywinauto学习_第1张图片

  • 连接程序,可使用start方法或connect方法
  • print_control_identifiers():获取当前控件的信息

官网链接

 inspect工具官网下载链接:辅助功能工具 - 检查 - Win32 apps | Microsoft Docs

 pywinauto官网下载链接:什么是Pywinauto · Pywinauto 中文文档 · 看云

你可能感兴趣的:(自动化测试,学习)