相关文章推荐
豪爽的篮球  ·  解决maven ...·  2 年前    · 
风度翩翩的创口贴  ·  iOS ...·  2 年前    · 
淡定的枇杷  ·  Zmq pub from go using ...·  2 年前    · 
from pywinauto.application import Application

(一) 判断程序的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.

将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:

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

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

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

2.使用窗口句柄绑定

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

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

3.使用程序路径绑定

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

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

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

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

(四) 选择菜单项

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

下面介绍两种方法来操作它:
- 使用menu_select()函数进行选择
要从屏幕录像专家程序的菜单选中转换工具->EXE/LXE转成MP4。只需要在python中加入如下语句:

dlg_spec = app.window(title='屏幕录像专家 V2017')
dlg_spec.menu_select(r"转换工具->EXE/LXE转成MP4")
  • 使用快捷键进行选择
    可以看到,菜单的每个选项都对应着快捷键,可以使用组合的快捷键直接访问我们需要的选项。
    使用type_keys()函数,这里需要的快捷键是Alt+T+P:
dlg_spec = app.window(title='屏幕录像专家 V2017')
dlg_spec.type_keys('%TP')

对于一些特殊符号的快捷键,对应的码表如下:

SHIFT                            +      
CTRL                             ^      
ALT                               %
空格键                            {SPACE}
BACKSPACE                        {BACKSPACE}{BS}   or   {BKSP}      
BREAK                            {BREAK}      
CAPS   LOCK                      {CAPSLOCK}      
DEL   or   DELETE                {DELETE}   or   {DEL}      
DOWN   ARROW                     {DOWN}      
END                              {END}      
ENTER                            {ENTER}   or   ~      
ESC                              {ESC}      
HELP                             {HELP}      
HOME                             {HOME}      
INS   or   INSERT                {INSERT}   or   {INS}      
LEFT   ARROW                     {LEFT}      
NUM   LOCK                       {NUMLOCK}      
PAGE   DOWN                      {PGDN}      
PAGE   UP                        {PGUP}      
PRINT   SCREEN                   {PRTSC}      
RIGHT   ARROW                    {RIGHT}      
SCROLL   LOCK                    {SCROLLLOCK}      
TAB                              {TAB}      
UP   ARROW                       {UP}     
+                                {ADD}      
-                                {SUBTRACT}      
*                                {MULTIPLY}      
/                                {DIVIDE}

上述操作结束后,EXE转MP4的插件窗口就弹出来了。

接下来就是如何操作这个窗口中的控件了,且听下回分解,哈哈。

python自动化工具之pywinauto(一)python自动化工具之pywinauto一pywinauto使用一 判断程序的backend二确定自动化入口点三连接到进程四 选择菜单项pywinauto使用首先,导入这个模块from pywinauto.application import Application(一) 判断程序的backend注意,首先需要判断你要进行的程序是用什么语言 二、环境安装 使用 python 实现来做PC端 自动化 ,前提是先安装好 python ,那么还需要用到一个第三方库: pywinauto ,在这边我们首先需要安装好这个库,安装命令如下: pip install pywinauto 三、使用说明 安装好了之后,关于使用说明大家可以参照官方文档上的说明 内容翻译如下: 就是说在我们安装好 Pywinauto 之后,首先要确定哪种可访问性技术( pywinauto 的backend)可以..
1本文设计内容较多,但是都不难,都是干货。耐心看下文。 工作中资源更新需要重复行操作软件,这不符合程序的一贯作风,所以使用 pywinauto 这个 python 模块,实现 自动化 操作软件。只需鼠标一点,就可以不用管了。是不是很方便。 1当前的需求: 技术人员在每次资源更新的时候,需要重复操作软件来进行版本号的制作,安装包的制作,希望减少这种工作量。 2 用到的 工具 pycharm + Unity
pywinauto (仅作为个人笔记,如有雷同,请联系删除。。) == Pywinauto ==是基于 Python 开发的,用于 自动化 测试的脚本模块,主要操作于Windows标准图形界面。它可以允许你很容易的发送鼠标、键盘动作给Windows的对话框和控件。 参考:https://www.cnblogs.com/xp1315458571/p/13892205.html 1、安装方式: 命令行安装:pip install pywinauto ,简单,方便,直接。 手动安装:【解压缩后执行 python set
pywinauto 的学习记录安装使用须知确定app的可访问技术启动应用程序辅助 工具 详细使用开启app功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入 第一次尝试这种方法记录自己学过的一些东西,后续会将一些重要的知识点慢慢记录进来,h
https:// pywinauto .readthedocs.io/en/latest/ https://www.kancloud.cn/gnefnuy/ pywinauto _doc https://github.com/ pywinauto Dialog是一个窗口,包含其他几个GUI元素/控件,如按钮,编辑框等。对话框不一定...
Pywinauto 是基于 Python 开发的,用于 自动化 测试的脚本模块,主要操作于Windows标准图形界面。它可以允许你很容易的发送鼠标、键盘动作给Windows的对话框和控件。  其中,最主要功能为对windows标准控件的一系列动作可编程处理。包括对窗口的指定、鼠标或键盘操作、获得控件属性等等。程序的开始为对所需应用的启 动或连接。获得程序连接后, pywinauto 通过窗口的名称、类名、是否可...
PYTHON 自动化 测试模块之 pywinauto 一、 pywinauto 简介 pywinauto 是一组 python 模块,用于 自动化 Microsoft Windows GUI。在最简单的情况下,它允许将鼠标和键盘操作发送到windows对话框和控件。 二、 pywinauto 安装方法 pywinauto 可以与pip和conda一起安装。 运行pip install pywinauto 或者 conda install -c conda-forge pywinauto . 推荐安装方式使用国内镜像源速度安装速度较快