欢迎光临散文网 会员登陆 & 注册

用Python实现PC端应用自动化的准备工作(pyautogui\pywinauto)

2023-04-07 13:35 作者:异于世界而又介于常人  | 我要投稿

    本文适用对象是解决小白在上手自动化在工具选择上的疑惑,以及本人使用的工具及其准备工作上可能遇到的问题。同时文章主要目的是解决一些前期准备工作上可能遇到的问题,而不是硬核的“教学教程”。详细的使用方法可以看官方说明文档或相关视频、文章深入学习    。

前提

    安装好Python3.0以上(没安装的应该搜不到这篇文章)

实现自动化的方法

    第三方库,有两个是大概率会用到的库,一个是pywinauto,另一个是pyautogui。

第三方库的安装与使用文档:https://pypi.org/


pywinauto介绍:https://www.bilibili.com/video/BV14Y4y1z7z6(教程推荐)

    pywinauto是一组Python模块,用于自动化Microsoft Windows GUI。可以让你向窗口对话框和控件发送鼠标和键盘操作,也支持更复杂的控件操作。可以用它来进行软件测试、质量保证或用户界面开发。

    pywinauto可以实现以下功能

    应用控制:可以打开、关闭、连接、杀死应用进程等。

    窗口控制:可以获取、激活、最大化、最小化、移动、调整窗口大小等。

    控件操作:可以查找、点击、编辑、选择、拖动、滚动等各种控件。

    鼠标和键盘模拟:可以发送鼠标和键盘事件到任意窗口或控件。

    文本获取和设置:可以获取和设置窗口或控件的文本内容。

    截图:可以对窗口或控件进行截图并保存为图片文件。

准备工作安装使用pip命令即可,打开命令窗口输入 pip install pywinauto。

    用于查看应用控件信息的小工具:spy++(spyxx),inspect,viewwizard

    官方文档介绍的上述前两个工具是windows自带的,实际上是在安装Visual Studio后才会有的。Visual Studio: 面向软件开发人员和 Teams 的 IDE 和代码编辑器 (microsoft.com)

    安装最新的社区版即可。安装过程中在工作负荷中记得勾选“通用Windows平台开发”。

    同时在单个组件中找到“C++核心功能”勾选,至于其它配置则无要求。如果安装vs后找不到spy++和inspect这两个工具看一下有没有漏选图中所示。

    当然除了通过安装vs后自带spy++、inspect,还可以单独只安装这两个工具(不想安装vs的话)。前者一步到位更省事。但是后者的话在单独安装后还需要额外再进行其他配置,才能单独运行,需要单独安装的可自行搜索教程。

    至于最后一个工具viewwizard,需要单独下载,看个人需要。(链接: https://www.52pojie.cn/thread-1570301-1-1.html)

个人使用体验

    通过模拟应用的使用来达到自动化的效果,涉及到控件的获取与操作,同时需要使用到多个辅助工具来获取控件信息。前期配置要麻烦一些,总体使用下来感觉操作起来要复杂不少,同时耗费的精力更多。适合想深入学习的,如果只是想做一些简单的自动化操作脚本则不推荐。

pyautogui介绍:https://zhuanlan.zhihu.com/p/302592540(可以参考一下)

    pyautogui是一个跨平台的GUI自动化Python模块。可以让你用Python脚本控制鼠标和键盘,实现与其他应用程序的交互。pyautogui有以下特点:

    简单易用:API设计得很简单,只需要几行代码就可以实现鼠标和键盘的操作。

    跨平台:支持Windows、macOS和Linux系统,也支持Python 2和3版本。

    图像识别:对屏幕进行截图,并根据给定的图像(例如按钮或复选框)在屏幕上找到。

    窗口管理:定位应用程序的窗口,并移动、调整大小、最大化、最小化或关闭(仅限Windows系统)。

    消息框:显示警告和消息框。

准备工作:安装使用pip命令即可,打开命令窗口输入 pip install pyautogui。不需要其它辅助工具。

个人使用体验

    简单易上手,具备一般的理解能力即可,可以做到边看官方使用文档边编写代码运行。虽然功能上比pywinauto少,具体能实现怎样的操作还是取决于个人的想象力了。

一个简单的例子

    使用pyautogui关键是获取鼠标位置的坐标,inspect工具可以直观的看到当前鼠标坐标,还是挺好用的。当然官方文档也有教如何通过循环打印来获取当前鼠标坐标。(当然也有其它工具)

mouse move即坐标

总结:pyautogui是模拟人的键鼠操作实现对重复工作的自动化;pywinauto则是让软件自己动起来实现自动化。

用Python实现PC端应用自动化的准备工作(pyautogui\pywinauto)的评论 (共 条)

分享到微博请遵守国家法律