Pywinauto桌面应用自动化01--安装和启动
Posted nikeylee
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Pywinauto桌面应用自动化01--安装和启动相关的知识,希望对你有一定的参考价值。
目录
一、安装Pywinauto
pip install pywinauto
官方文档:What is pywinauto — pywinauto 0.6.8 documentation
查看是否安装成功:
pip list
二、定位元素的工具
查看界面上的元素的相关属性,可用于自动化测试中元素的定位和识别等;
1、网上推荐的inspect工具
- Spy++ (定位元素工具(win32))
- Inspect(定位元素工具(uia))
- UI Spy (定位元素工具)
- Swapy(可简单生成pywinauto代码)
2、我自己使用的inspect工具
- Accessibility Insights for Windows
下载地址和官方文档:Accessibility Insights for Windows
是 Windows 官方推荐的辅助工具,用来查看窗口控件的信息。
三、启动和连接应用程序
1、启动应用程序
Pywinauto中backend有两种:win32和uia,默认为win32,win32(可不填)在自带程序中使用,其他需下载安装等程序一般使用uia。
Application的可访问技术适用的应用类型
- MS UI Automoation API(backend=“uia”)
- 一般是WinForms、WPF、Store app商店应用、Qt5、浏览器、navicat;
- win32 API(backend=“win32”)
- 一般是MFC、VB6、VCL,简单的WinForms控件和大多数旧的应用程序
举例:
1)启动记事本
from pywinauto.application import Application
# 启动记事本
app = Application(backend="uia").start("notepad.exe")
运行后,记事本打开
2)启动QQ
from pywinauto.application import Application
# 启动QQ
qq_start_path = r"D:\\\\Program Files\\\\Tencent\\\\QQ\\\\Bin\\\\QQScLauncher.exe"
app = Application(backend='uia').start(qq_start_path)
启动QQ换一种写法:
import pywinauto
# 启动QQ
qq_start_path = r"D:\\\\Program Files\\\\Tencent\\\\QQ\\\\Bin\\\\QQScLauncher.exe"
app = pywinauto.Application(backend='uia').start(qq_start_path)
运行后,QQ启动,打开登录窗口
2、连接已经打开的应用程序
1)通过进程号连接
打开记事本程序
打开任务管理器-详细信息,查看进程号PID,如图记事本进程号为30116
通过进程号连接已经启动的记事本程序
from pywinauto.application import Application
# 通过进程号连接已经启动的记事本程序,记事本进程号为30116
pid = 30116
app = Application(backend='uia').connect(process=pid)
# 输出记事本窗口标题
main_title = app.top_window().get_properties()['texts'][0]
print(main_title)
运行后,输出结果:
*无标题 - 记事本
2)通过窗口句柄连接
打开记事本程序
再打开Accessibility Insights for Windows工具,选中记事本应用后,inspect工具自动识别到窗口,找到记事本的窗口句柄NativeWindowHandle为2564730;
通过窗口句柄连接已经启动的记事本程序
from pywinauto.application import Application
# 通过窗口句柄连接已经启动的记事本程序,记事本的窗口句柄NativeWindowHandle为2564730
handle = 2564730
app = Application(backend='uia').connect(handle=handle)
# 输出记事本窗口标题
main_title = app.top_window().get_properties()['texts'][0]
print(main_title)
运行后,输出结果:
test001.txt - 记事本
以上是关于Pywinauto桌面应用自动化01--安装和启动的主要内容,如果未能解决你的问题,请参考以下文章