【Windows自动化】基于pywinauto模块实现win自动化


前言

在很多情况下,需要我们重复操作Windows上的程序。如果采用人工的方法确实可以达到这个目的,但是如果是需要昼夜长此以往的操作,显然人工的方式有点力不从心,毕竟人不是机器。我们可以借助python来实现这个功能,python提供了大量功能强大的库供我们使用。pywinauto可以帮我们实现windows自动化,当然也有很多模块可以辅助进行windows自动化测试,比如time、datetime、loggging、configparser、pyautogui等。
本文主要介绍使用pywinauto来实现windows自动化。使用pip install pywinauto命令进行下载,下载完成有“successfully installed”即可。


一、使用步骤

1.引入库

代码如下(示例):

from pywinauto.application import Application

2.打开指定程序

这里以打开xshell应用为例,实现简单的自动化操作。首先使用inspect这个小软件来确定软件的类型,而且还可以作元素定位,一般来说常用的类型都是’uia’格式。如果使用inspect不能获取窗口的结构,那么该软件很有可能时win32的,这时就需要修改为‘win32’,代码示例如下:

app = Application(backend='uia').start('exe的路径')

正常情况下,使用该代码就可以启动应用了。需要注意的是,自动化测试过程中需要保持电脑屏幕处于不锁屏状态,同时不要打断自动化操作流程。这里举个简单的例子,自动打开XMind应用。代码示例如下:

app = Application(backend='uia').start(r"C:\Program Files\XMind\XMind.exe")

此时可以看到已经成功打开Xmind应用,然后使用Inspect这个应用,可以查看到XMind的窗口标题为“XMinf”,我们可以用类名定位到该窗口。

3.控件元素定位、窗口操作、控件操作


定位到该窗口后可以使用print_control_identifiers()这个方法将窗口所有控件信息打印出来,方法里面可以添加参数depth为打印的深度,不添加则默认打印所有。方法里还可以添加filename参数指定文件名,这主要是将窗口控件信息输出到文本文件中,不添加该参数则默认打印到控制台。

dlg = app["XMind"]
dlg.print_control_identifiers()

执行该段代码之后,控制台输出所有控件信息,如下:

|    | Static - 'XMind'    (L508, T199

猜你喜欢

转载自blog.csdn.net/liaotianyin/article/details/130759310