您的位置 首页 > 数码极客

【电脑auto是什么意思】聊聊 PC 端自动化最佳方案 - Pywinauto

资料来源:airpython

作者:明星安哥

1.前言

你好,我是眼科的!

有人评论说,作为WinAppDriver的替代方案,“pywinauto”也可以完美地完成PC端的自动化。

2.简介

Pywinauto是完全由Python创建的模块,可用于在Windows中自动执行GUI应用程序。

它还支持鼠标和键盘操作,并帮助您在元素控制树的复杂界面中完成自动化任务。

项目地址:

支持的应用程序有两个主要类别:

Win32 API由MFC、VB6、VCL、simple WinForms controls and most of the old legacy appsms ui automation组成,包括WinForms、WPF和Store apps

Win32 API的backend是“Win32”

Ms ui自动化的backend是“UIA”

3.元素控制

与WinAppDriver一样,在编写自动脚本之前,必须获取元素控件的各种属性值

有两种方法可以获取元素控件。

窗口内置方法检查工具

窗口对象中内置的两种方法都打印当前页面的元素控件树

# windows对象具有打印表单所有元素控件的内置方法

#方法1:

表单对象。print_control_identifiers()

#方法2

表单对象。dump_tree()

常用的检查工具有两种:In和Spy

4.实战

实战中,首先安装从属软件包pywinauto

#安装相依性

Pip3 install pywinauto

接下来,为了说明整个实施过程,让我们看一下上面的一句话。

打开4-1微信客户端

首先,检查通过PC端微信backend为“UIA”的检查工具应用的backend属性值

然后实例化Application类

最后,使用内置于对象中的函数创建应用程序对象

Import pywinauto

From import Application

#导入应用程序对象

#请从三种方法中选择一种

#方法1:应用进程PID(连接)

App=application (back end=' UIA ')。connect (process=PID)

#方法2:应用完整路径(连接)

App=application (back end=' UIA ')。connect(path=' d : program files(x 86) Tencent)

#方法3:打开应用程序(打开)

App=application (back end=' UIA ')。请参阅start(' d : program files(x86) Tencent wechat)

请注意,导入应用程序对象有三种方法,可以根据需要使用

导入4-2表单对象

通过检查工具获取表单的属性列表,然后使用应用对象表单属性获取微信主页上的表单对象

实施代码如下:

From import SetFocus

#导入窗口对象

通过# title和ClassName导入表单对象

=(标题=u '微信',class_name='WeChatMainWndForPC ')

.set_focus()

切换到4-3聊天列表

获取左侧聊天切换按钮,获取坐标位置,通过点击模拟转到聊天列表页面

From pywinauto import mouse

Def _ _ get _ element _ postion (self、element) :

获取“”元素的中心点位置“”

#元素坐标

element _ position=element . rectangle()

#计算中心点位置

Center_position=(in elemen)/2)、

In elemen)/2)

Return center_position

Def start(储存格f) :

# 1,获取左侧[聊天]切换元素

Chat _ list _ element=。child _ window (title='聊天',control_type='Button ')

# 2、点击进入聊天列表。

Mou(button='left ',

Coords=(chat_list_element)

进入4-4聊天页面,输入内容并发送

获取“文档聊天助手”元素,单击转至聊天页面,找到输入框元素,使用内置方法输入内容,最后使用键盘模拟按“Enter”键发送消息

From pywinauto import mouse

# 3、点击“文件传输助手”进入聊天页面

File _ helper _ element=。child _ window (title='文件传输助手',control_type='ListItem ')

Mou(button='left ',

Coords=(file_helper_element)

# 4,输入框元素导入,输入模拟

Edit _ element=。child _ window (title=r '输入',control_type='Edit ')

休眠(2)

#输入内容

Edi(《明星安提瓜》)

#使用键盘回车,即发送

Send_keys('{ENTER} ')

释放4-5资源

作业完成后,可以调用应用对象的“kill()”函数来关闭进程并释放资源。

Def teardown(self):

" "资源释放 " "

#终止进程,释放资源

()

5.最后,

在上面的示例中,使用pywinauto完成了自动发送简单消息的步骤。

Pywinauto和WinAppDriver都可以很好地实现PC端自动化,但由于WinAppDriver支持Appium,因此可能更有利于脚本语法的简单性。

责任编辑: 鲁达

1.内容基于多重复合算法人工智能语言模型创作,旨在以深度学习研究为目的传播信息知识,内容观点与本网站无关,反馈举报请
2.仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证;
3.本站属于非营利性站点无毒无广告,请读者放心使用!

推荐阅读