pywinauto自动化控制操作

pywinauto
1.pywinauto的环境安装

(1)在线安装,在dos命令框输入pip install pywinauto 进行安装
在这里插入图片描述
(2)离线安装

  • 下载压缩包 在官网https://pypi.org/下载
    在这里插入图片描述

  • 解压压缩包,解压之后为pywinauto-0.6.8,放到python的安装目录下,在dos命令,进行安装进入安装路径;C:\Python37\pywinauto-0.6.8 然后输入python setup.py install
    在这里插入图片描述
    2.pywinauto打开指定的应用程序
    效果如图所示:
    在这里插入图片描述
    代码如下:

from pywinauto.application import Application
#打开指定的应用程序
#1.打开window自带的应用:记事本
app = Application(backend="uia").start("notepad.exe")
#2.打开任意一个应用程序(输入要打开的应用程序的exe文件的路径,就可以打开此应用程序)
# app = Application(backend="uia").start(r"D:\Program Files\PremiumSoft\Navicat Premium\navicat.exe")
#启动qq
# app = Application(backend="uia").start(r"D:\Program Files (x86)\Tencent\QQ\Bin\QQSclauncher.exe")

3.pywinauto连接已经打开的应用程序
navicat.exe

  • 通过进程号去进行连接
    在任务管理器里查看应用程序的进程号,这里以Navicat为例:
    在这里插入图片描述
    此进程号为7908
    然后通过代码实现:
from pywinauto.application import Application
#通过pywinauto去连接已经打开的应用程序
#通过进程号去进行连接
app = Application("uia").connect(process=7908)
print(app)

运行此代码,可打开navicat

  • 通过窗口句柄进行连接
    需要百度下载viewWizard句柄查看工具
    https://download.csdn.net/download/guiyin1150/12825818
    打开效果如下:
    在这里插入图片描述
    通过窗口句柄打开navicat,代码如下:
from pywinauto.application import Application
#通过pywinauto去连接已经打开的应用程序
#通过进程号去进行连接
# app = Application("uia").connect(process=7908)
# print(app)
#通过窗口句柄进行连接
app = Application("uia").connect(handle=459518)
print(app)

4.如何选择应用程序的窗口

navicat.exe

  • 根据窗口标题或类名选择
    dlg = app[窗口类名/标题]
  • 根据窗口类名选择窗口
    dlg = app.窗口类名
    代码如下:
from pywinauto.application import Application
import time
#启动navicat
app = Application("uia").start(r"D:\navicat\navicat.exe")
#方式一,使用类名选择窗口
# dlg = app["TNavicatMainForm"]
#通过窗口标题去选择窗口
dlg = app["Navicat Premium"]

#方式二 app.窗口类名(不推荐)
dlg = app.TNavicatMainForm

# time.sleep(4)
# #打印窗口中的所有控件
# dlg.print_control_identifiers()

5.窗口控件基本属性方法

from pywinauto.application import Application
import time
# 启动navicat
app = Application("uia").start(r"D:\navicat\navicat.exe")

# 选择窗口
dlg = app["Navicat Premium"]
print("nihao")
menu = dlg['Menu']
# print(menu.print_control_identifiers())
file = menu.child_window(title="文件")
print(dlg.wrapper_object())
print(menu.wrapper_object())
# print(file.wrapper_object())
#dir :查看对象所支持的方法
print(dir(dlg.wrapper_object()))
#控件的文本内容获取:texts

#获取子元素
print(dlg.children())
#获取菜单的子元素
print(menu.children())

#获取控件的类名
print(menu.class_name())
#获取控件的属性,返回的字典
print(menu.get_properties())

6.窗口及控件截图处理(待续。。。)

猜你喜欢

转载自blog.csdn.net/guiyin1150/article/details/108476681