pywinauto库基本使用之登录微信发信息

一、pywinauto库介绍

Pywinauto是一个用于自动化Windows应用程序界面操作的强大Python库

主要功能包括:

  1. GUI测试:Pywinauto可以模拟用户对Windows界面的操作,如点击、输入等,这使得它非常适合用于进行自动化的图形用户界面测试。

  2. 数据采集:通过与Windows应用程序交互,Pywinauto能够获取应用程序中的数据,这对于需要从多个窗口应用程序中提取信息的场景非常有用。

  3. 任务自动化:Pywinauto允许开发者编写脚本来自动执行重复性的桌面应用程序任务,从而节省时间并提高效率。

  4. 跨平台支持:虽然主要用于Windows应用程序,但Pywinauto也支持Linux和macOS上的一些应用程序。

  5. 易于使用:Pywinauto提供了简单的接口和丰富的文档,使得即使是初学者也能快速上手并开始自动化工作。

二、pywinauto库的使用

1.安装

在cmd控制台输入以下语句即可

 pip install pywinauto
2.导包
 from pywinauto.application import Application
3.启动或连接程序

启动指定路径下的程序

 app = Application('uia').start("程序")

连接已有程序

 app = Application('uia').connect("程序")

在这里,app即表示要进行操作的程序内容

4.窗口操作

获取该程序指定窗口名称的窗口

 dlg = app.window(title_re="窗口名称")

*可使用ViewWizard、Inspect等软件查看窗口信息

pywinauto库基本使用之登录微信发信息_第1张图片

得到了窗口之后便可以进行多种操作,例如:

 # 最大化窗口
 dlg.maximize()
 # 最小化窗口
 dlg.minimize()
 # 关闭窗口
 dlg.close()
 # 获取窗口状态
 dlg.get_show_state()
 # 判断窗口是否存在
 exists()
5.控件操作

控件是用户或程序操作的主要对象,它包含在窗口中,其内容包括:

  • 按钮(Button):允许用户通过点击来执行特定的命令或操作。

  • 文本框(Text Box):提供一个区域,用户可以在其中输入或编辑文本。

  • 复选框(Checkbox):允许用户从一组选项中选择一个或多个选项。

  • 单选按钮(Radio Button):通常用于提供互斥的选项,用户只能选择其中一个。

  • 下拉列表(Drop-down List):提供一个选项列表,用户可以从中选择一个选项。

  • 滚动条(Scrollbar):用于在有限的显示区域内浏览更多内容。

  • 列表框(List Box):显示一个项目列表,用户可以从中选择一个或多个项目。

  • 菜单(Menu):包含一系列命令或选项,通常通过点击菜单栏中的项来访问。

  • 工具栏(Toolbar):提供快速访问常用命令或功能的按钮和图标。

  • 状态栏(Status Bar):通常位于窗口底部,显示有关应用程序状态的信息。

  • 树视图(Tree View):以层次结构显示项目列表,用户可以展开和折叠以查看不同的层级。

  • 列表视图(List View):以列表形式显示项目,可以有不同的视图设置,如大图标、小图标、列表等。

  • 选项卡(Tab):允许用户在不同的页面或文档之间切换,每个选项卡代表一个独立的区域或内容集合。

对于复杂的窗口控件结构可以程序获取。

使用该语句,则会打印输出窗口控件结构

 dlg.print_control_identifiers()

pywinauto库基本使用之登录微信发信息_第2张图片

如图所示,值得注意的是child_window()中的内容,它包含了控件的标题和类型。

有了控件信息,你便可以得到它

 widget = dlg.child_window(title="标题", control_type="类型")

对于不同类型的控件,则先找到,后操作

点击操作

 # 左键单击一次
 widget.click_input()
 # 右键单击一次
 widget.right_click()
 # 双击一次
 widget.double_click()
输入内容
 # 对控件输入“内容”
 widget.type_keys("内容")

按键操作

该操作,不针对控件

 # 上档键
 send_keys("VK_SHIFT")
 # Ctrl键
 send_keys("VK_CONTROL")
 # 空格键
 send_keys("VK_SPACE")
 # 回车键
 send_keys("ENTER")

更多操作可查看pywinauto说明文档

三、案例展示

通过上述学习,已经可以简单的进行对软件的控制了,下面以微信发送消息为例。

 from pywinauto.application import Application
 import time
 ​
 # 启动应用程序
 app = Application('uia').start("D:\WeChat\WeChat.exe")
 # 连接应用程序
 # app = Application('uia').connect("D:\WeChat\WeChat.exe")
 ​
 # 查找并返回标题为“微信”的窗口
 dlg = app.window(title_re="微信")
 # 打印登录界面窗口结构
 # dlg.print_control_identifiers()
 ​
 # 查找并返回标题为“进入微信”的按钮并点击
 but = dlg.child_window(title="进入微信", control_type="Button")
 but.click_input()
 ​
 # 等待登录加载
 time.sleep(5)
 # 打印微信消息界面窗口结构
 # dlg.print_control_identifiers()
 ​
 # 查找并返回标题为“文件传输助手”的联系人并点击
 but = dlg.child_window(title="文件传输助手", control_type="Button")
 but.click_input()
 # 查找并返回标题为“文件传输助手”的输入窗口并点击输入内容
 edit = dlg.child_window(title="文件传输助手", control_type="Edit")
 edit.click_input()
 edit.type_keys("Hello World")
 # 查找并返回标题为“发送(S)”的按钮并点击
 but = dlg.child_window(title="发送(S)", control_type="Button")
 but.click_input()
展示视频:

​​pywinauto库基本使用之登录微信发信息_第3张图片

你可能感兴趣的:(技术分享,微信,python,自动化)