当前位置:   article > 正文

Pywinauto桌面应用自动化01--安装和启动_pip install pywinauto

pip install pywinauto

目录

一、安装Pywinauto

二、定位元素的工具

三、启动和连接应用程序

1、启动应用程序

2、连接已经打开的应用程序

1)通过进程号连接

2)通过窗口句柄连接

一、安装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)启动记事本

  1. from pywinauto.application import Application
  2. # 启动记事本
  3. app = Application(backend="uia").start("notepad.exe")

运行后,记事本打开 

2)启动QQ

  1. from pywinauto.application import Application
  2. # 启动QQ
  3. qq_start_path = r"D:\\Program Files\\Tencent\\QQ\\Bin\\QQScLauncher.exe"
  4. app = Application(backend='uia').start(qq_start_path)

启动QQ换一种写法:

  1. import pywinauto
  2. # 启动QQ
  3. qq_start_path = r"D:\\Program Files\\Tencent\\QQ\\Bin\\QQScLauncher.exe"
  4. app = pywinauto.Application(backend='uia').start(qq_start_path)

运行后,QQ启动,打开登录窗口

2、连接已经打开的应用程序

1)通过进程号连接

打开记事本程序

打开任务管理器-详细信息,查看进程号PID,如图记事本进程号为30116

 通过进程号连接已经启动的记事本程序

  1. from pywinauto.application import Application
  2. # 通过进程号连接已经启动的记事本程序,记事本进程号为30116
  3. pid = 30116
  4. app = Application(backend='uia').connect(process=pid)
  5. # 输出记事本窗口标题
  6. main_title = app.top_window().get_properties()['texts'][0]
  7. print(main_title)

运行后,输出结果:

*无标题 - 记事本

2)通过窗口句柄连接

打开记事本程序

再打开Accessibility Insights for Windows工具,选中记事本应用后,inspect工具自动识别到窗口,找到记事本的窗口句柄NativeWindowHandle为2564730;

通过窗口句柄连接已经启动的记事本程序

  1. from pywinauto.application import Application
  2. # 通过窗口句柄连接已经启动的记事本程序,记事本的窗口句柄NativeWindowHandle为2564730
  3. handle = 2564730
  4. app = Application(backend='uia').connect(handle=handle)
  5. # 输出记事本窗口标题
  6. main_title = app.top_window().get_properties()['texts'][0]
  7. print(main_title)

运行后,输出结果:

test001.txt - 记事本

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Cpp五条/article/detail/706440
推荐阅读
相关标签
  

闽ICP备14008679号