当前位置:   article > 正文

2024年最新python自动化工具之pywinauto(一)_from pywinauto,2024年这些高频面试知识点最后再发一次_python pywinauto

python pywinauto

img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上C C++开发知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

如果你需要这些资料,可以戳这里获取

	- [二确定自动化入口点](#%E4%BA%8C%E7%A1%AE%E5%AE%9A%E8%87%AA%E5%8A%A8%E5%8C%96%E5%85%A5%E5%8F%A3%E7%82%B9)
	- [三连接到进程](#%E4%B8%89%E8%BF%9E%E6%8E%A5%E5%88%B0%E8%BF%9B%E7%A8%8B)
	- [四 选择菜单项](#%E5%9B%9B-%E9%80%89%E6%8B%A9%E8%8F%9C%E5%8D%95%E9%A1%B9)
  • 1
  • 2
  • 3

pywinauto使用

首先,导入这个模块

from pywinauto.application import Application
  • 1
(一) 判断程序的backend

注意,首先需要判断你要进行的程序是用什么语言写的,在实例化的时候会有区别,主要是判断backend是什么。
这里写图片描述

那么如何判断程序的backend是’win32’还是’uia’呢?官方文档中推荐使用spy++和inspect来检查。有人专门整理了一下,放在github上了https://github.com/blackrosezy/gui-inspect-tool
spy++咱们之前讲过。接下来将将如何使用inspect来判断backend的类别。

Switch Inspect.exe into UIA mode (using MS UI Automation). If it can show more controls and their properties than Spy++, probably the "uia" backend is your choice.
  • 1

将inspect左上角的下拉列表中切换到“UI Automation”,然后鼠标点一下你需要测试的程序窗体,inspect就会显示相关信息。
下图为点击window文件夹的结果,inspect中显示了相关的信息,如下图所示。说明backend为uia。
这里写图片描述

再来看点击 屏幕录像专家程序的结果
这里写图片描述
inspect中显示拒绝访问,说明屏幕录像专家程序的backend应该是win32。

(二)确定自动化入口点

这里主要是限制自动化控制进程的范围。如一个程序有多个实例,自动化控制一个实例,而保证其他实例(进程)不受影响。
主要有两种对象可以建立这种入口点——Application() , Desktop().
Application的作用范围是一个进程,如一般的桌面应用程序都为此类。
Desktop的作用范围可以跨进程。主要用于像win10的计算器这样包含多个进程的程序。这种目前比较少见。使用方法见entry-points-for-automation

(三)连接到进程

建立好入口后,我们需要连接到进程中。这里有两种方法:

  • 重新开启一个进程。使用Application对象的start()方法
start(self, cmd_line, timeout=app_start_timeout)  # instance method:
  • 1

这里的cmd_line参数就是你使用命令行启动程序的命令语句。所以可以很方便的实现带输入参数的程序启动。
启动屏幕录像专家,可以使用如下代码:

app = Application().start(r"D:\Program Files (x86)\tlxsoft\屏幕录像专家 共享版 V2017\屏录专家.exe")
  • 1
  • 连接到已有的进程。使用Application对象的connect()方法。这个方法对已有进程的绑定非常灵活。
    1.使用进程ID (PID)进行绑定。
app = Application().connect(process=19188)
  • 1

进程的PID可以在任务管理器中查看。
这里写图片描述

2.使用窗口句柄绑定

app = Application().connect(handle=0x00230DB6)
  • 1

窗口句柄可以在Spy++中查看
这里写图片描述

3.使用程序路径绑定

app = Application().connect(path=r"D:\Program Files (x86)\tlxsoft\屏幕录像专家 共享版 V2017\屏录专家.exe")
  • 1

4.使用标题、类型等匹配

app = Application().connect(title_re="屏幕录像专家.\*", class_name="TMainForm")
  • 1

第1、2种方法通用性不强,每次运行ID和窗口句柄都可能不一样。第3种方法最直接简单,而第4种方法灵活性最强。

(四) 选择菜单项

个人感觉pywinauto最方便的地方之一就是能够很轻易的操作菜单,而且对于多级菜单毫无压力。
这里写图片描述

img
img

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

s://bbs.csdn.net/topics/618668825)**

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/神奇cpp/article/detail/1003382
推荐阅读
相关标签
  

闽ICP备14008679号