首页 > 系统相关 >windows 桌面GUI自动化-1. pywinauto 环境准备

windows 桌面GUI自动化-1. pywinauto 环境准备

时间:2023-08-21 10:12:23浏览次数:48  
标签:uia 控件 windows pywinauto GUI win32 backend

前言

Pywinauto 是基于 Python 开发的,用于自动化测试的脚本模块,主要操作于 Windows 标准图形界面。它可以允许你很容易的发送鼠标、键盘动作给 Windows 的对话框和控件。
官网地址https://pywinauto.readthedocs.io/en/latest/index.html

环境准备

可以通过命令行安装pywinauto:

pip install pywinauto

安装完成后,可以执行以下代码,检测是否正确安装

from pywinauto.application import Application

# 启动记事本
app = Application(backend="uia").start("notepad.exe")

执行后能正确打开记事本即可

可访问性技术(backend)

在启动应用程序之前,我们需确定使用哪种可访问性技术(backend)用于应用程序。
在windows上受支持的有两种:

  • Win32 API (backend= "win32") ,默认的backend, MFC、VB6、VCL、简单的 WinForms 控件和大多数旧的遗留应用程序
  • MS UI Automation (backend="uia") , WinForms、WPF、商店应用程序、Qt5、浏览器

那么如何知道程序到底适用于那种backend?
可以借助于GUI对象检查工具来确定程序到底适用于那种backend。如果使用 inspect 的uia模式,可见的控件和属性更多的话,backend可选uia,反之,backend可选win32。

inspect 元素定位工具

常用的一些元素定位工具:
SPY++,用于WIN32 API。当SPY++可以显示所有的控件时,访问技术应该选择"win32"。
Inspect.exe:如果Inspect.exe的模式设置为UIA模式,可以比SPY++显示更多的控件,则访问技术应该选择"uia"。
py_inspect:支持win32和uia两种访问技术,是SWAPY的替代。
UISPY:支持uia访问技术。
SWAPY:只支持win32访问技术。

inspect 教程https://learn.microsoft.com/zh-cn/windows/win32/winauto/inspect-objects

inspect.exe 是windows SDK 的一个内置工具,可以通过先安装Windows SDK,下载地址https://developer.microsoft.com/en-us/windows/downloads/windows-sdk/

下载后在本机安装,Inspect.exe 位于 SDK 安装路径的 \bin<version><platform> 文件夹中。 通常不需要以管理员身份运行它。

它可以单独复制出来,放在桌面使用。

“ 检查” 窗口包含几个主要部分:

标题栏。 显示“ 检查 ”窗口句柄 (HWND) 。
菜单栏。 提供对检查功能的访问权限。
工具 栏。 提供对检查功能的访问权限。
树视图。 将 UI 元素的分层结构呈现为可用于在元素之间导航的树视图控件。
数据视图。 显示所选 UI 元素的所有公开辅助功能属性。

菜单栏中可用的命令也在工具栏中提供。 下图显示了检查查询记事本中“编辑”菜单元素的UI 自动化属性。

标签:uia,控件,windows,pywinauto,GUI,win32,backend
From: https://www.cnblogs.com/yoyoketang/p/17644444.html

相关文章

  • Python实现Windows下的视频壁纸
    importsysimportwin32guiimportsubprocessimporttimedefpretreatmentHandle():hwnd=win32gui.FindWindow("Progman","ProgramManager")workerW1=Nonewhile1:workerW1=win32gui.FindWindowEx(None,workerW1......
  • Windows中Java安装及环境变量配置
    Windows中Java安装及环境变量配置目录Windows中Java安装及环境变量配置1、下载jdk安装包2、安装JDK3、配置环境变量3.1、环境变量配置页进入3.2、环境变量1:JAVA_HOME3.3、环境变量2:CLASSPATH3.4、环境变量3:Path4、验证安装1、下载jdk安装包通过以下镜像站下载jdk安装包:https://......
  • 在Windows系统上,给perl安装JSON::parse module
    管理员身份打开powershell,一定以管理员身份打开:输入下面两行命令即可 cpanApp::cpanminuscpanmJSON::Parse JSON::Parse指南:https://metacpan.org/pod/JSON::Parse perlmodule安装指南:https://www.cpan.org/modules/INSTALL.html......
  • 解决Windows远程桌面“由于安全设置错误, 客户端无法连接到远程计算机”
    用windows2008远程桌面连接Ubuntu系统,出现如下错误: 但我用win10可以进入登录界面,查了一下,需要修改安全策略,设置为如下: 参考资料:https://it.cha138.com/python/show-1249300.html ......
  • Windows安装Archlinux(WSL2)
    导言对于在Windows中使用Linux系统,有很多种实现方法。最常见的方法就是使用VM虚拟机软件。于是微软推出了WSL(WindowsSubSystemForLinux),初代的WSL1,总体上是在运行时将LinuxSystemCall翻译为NTAPI调用,从而在NT内核基础之上模拟实现Linux内核。也许是因为WSL1靠翻译SystemCa......
  • 虚拟机linux无法实现与原机windows之间的复制和拖拽文件--已解决
    在虚拟机(我用的是Ubuntu)桌面右键打开终端,输入第一行sudoaptinstallopen-vm-tools中间全部yes,然后关闭终端然后再次在桌面打开终端,输入sudoaptinstallopen-vm-tools-desktop中间全部yes完成......
  • windows上多版本nodejs安装和切换
    安装nvm下载地址:https://github.com/coreybutler/nvm-windows/releases下载exe安装即可。查看nvm版本: 查看已安装的nodejs版本: 安装Nodejs,比如安装版本v14.21.3执行命令:nvminstall14.21.3然后输入:nvmuse14.21.3指定当前使用的nodejs版本 ......
  • [总结]Windows提权总结
    0x01简介提权可分为纵向提权与横向提权:纵向提权:低权限角色获得高权限角色的权限;横向提权:获取同级别角色的权限。Windows常用的提权方法有:系统内核溢出漏洞提权、数据库提权、错误的系统配置提权、组策略首选项提权、WEB中间件漏洞提权、DLL劫持提权、滥用高危权限令牌提权、第......
  • 【工具】windows10定时关机
    windows10定时关机打开 cmd (在搜索栏输入cmd打开):2.2、创建计划任务:schtasks/create/TNshutdown_on_time/TR"shutdown/s/t60"/ST22:00:00/SCDAILY自己用的话只需改一个地方,把22:00:00改成自己需要的时间就行了3、查看创建结果:schtasks/Delete/TNshu......
  • windows环境发布、布署项目
    第一种布署方式:安装IIS,在IIS上发布第二种布署方式:发布后生成的dll文件cmd---dotnet启动项目名(WebNet)第三种布署方式:直接启动发布项目后的exe文件,json配置文件中配置下面这句"Kestrel":{"Endpoints":{"Http":{"Url":"http://*:7010"}......