关键词:
目录
一、安装Pywinauto
pip install pywinauto
官方文档:What is pywinauto — pywinauto 0.6.8 documentation
查看是否安装成功:
pip list
二、定位元素的工具
查看界面上的元素的相关属性,可用于自动化测试中元素的定位和识别等;
1、网上推荐的inspect工具
- Spy++ (定位元素工具(win32))
- Inspect(定位元素工具(uia))
- UI Spy (定位元素工具)
- Swapy(可简单生成pywinauto代码)
2、我自己使用的inspect工具
- Accessibility Insights for Windows
下载地址和官方文档:Accessibility Insights for Windows
是 Windows 官方推荐的辅助工具,用来查看窗口控件的信息。
三、启动和连接应用程序
1、启动应用程序
Pywinauto中backend有两种:win32和uia,默认为win32,win32(可不填)在自带程序中使用,其他需下载安装等程序一般使用uia。
Application的可访问技术适用的应用类型
- MS UI Automoation API(backend=“uia”)
- 一般是WinForms、WPF、Store app商店应用、Qt5、浏览器、navicat;
- win32 API(backend=“win32”)
- 一般是MFC、VB6、VCL,简单的WinForms控件和大多数旧的应用程序
举例:
1)启动记事本
from pywinauto.application import Application
# 启动记事本
app = Application(backend="uia").start("notepad.exe")
运行后,记事本打开
2)启动QQ
from pywinauto.application import Application
# 启动QQ
qq_start_path = r"D:\\\\Program Files\\\\Tencent\\\\QQ\\\\Bin\\\\QQScLauncher.exe"
app = Application(backend='uia').start(qq_start_path)
启动QQ换一种写法:
import pywinauto
# 启动QQ
qq_start_path = r"D:\\\\Program Files\\\\Tencent\\\\QQ\\\\Bin\\\\QQScLauncher.exe"
app = pywinauto.Application(backend='uia').start(qq_start_path)
运行后,QQ启动,打开登录窗口
2、连接已经打开的应用程序
1)通过进程号连接
打开记事本程序
打开任务管理器-详细信息,查看进程号PID,如图记事本进程号为30116
通过进程号连接已经启动的记事本程序
from pywinauto.application import Application
# 通过进程号连接已经启动的记事本程序,记事本进程号为30116
pid = 30116
app = Application(backend='uia').connect(process=pid)
# 输出记事本窗口标题
main_title = app.top_window().get_properties()['texts'][0]
print(main_title)
运行后,输出结果:
*无标题 - 记事本
2)通过窗口句柄连接
打开记事本程序
再打开Accessibility Insights for Windows工具,选中记事本应用后,inspect工具自动识别到窗口,找到记事本的窗口句柄NativeWindowHandle为2564730;
通过窗口句柄连接已经启动的记事本程序
from pywinauto.application import Application
# 通过窗口句柄连接已经启动的记事本程序,记事本的窗口句柄NativeWindowHandle为2564730
handle = 2564730
app = Application(backend='uia').connect(handle=handle)
# 输出记事本窗口标题
main_title = app.top_window().get_properties()['texts'][0]
print(main_title)
运行后,输出结果:
test001.txt - 记事本
如何在linux桌面环境下自动启动程序
我在本教程中将介绍如何在各种Linux桌面环境下,自动启动某个程序。 GNOME桌面环境 在终端中运行这个命令,启动"StartupApplicationsPreferences"(启动应用程序首选项)GUI。 $gnome-session-properties 点击"Add"(添加)按... 查看详情
在 Windows 8 桌面应用程序认证要求中自动启动
】在Windows8桌面应用程序认证要求中自动启动【英文标题】:AutostartwithinWindows8DesktopAppCertificationRequirements【发布时间】:2012-07-2108:50:22【问题描述】:Windows8桌面(不是Metro!)应用认证要求状态10.2您的应用必须避免在启动时自... 查看详情
windowsgui程序自动化之pywinauto
WindowsGUI程序自动化之pywinauto一.pywinauto的安装与配置 官方英文版文档网址:https://pywinauto.readthedocs.io/en/latest/index.html >>>>>>待续 查看详情
java桌面应用程序的自动启动?
】java桌面应用程序的自动启动?【英文标题】:Autostartupforjavadesktopapplication?【发布时间】:2010-11-0201:00:08【问题描述】:我使用NetBeans6.1在Java中创建了一个桌面应用程序,并制作了一个应用程序的jar文件。现在我想让它在客户... 查看详情
使用 pywinauto 自动化的 Windows 应用程序不会检测到 TreeView 中的元素,尽管这些元素有自己的特征
】使用pywinauto自动化的Windows应用程序不会检测到TreeView中的元素,尽管这些元素有自己的特征【英文标题】:ThewindowsapplicationautomatingusingpywinautodoesnotdetectelementsinsideaTreeView,despitetheelementshavethereowncharacteristic【发布时间】:2021-05-1... 查看详情
chatgpt桌面版安装教程(代码片段)
概述标题党了,首先声明ChatGPT官方没有桌面版,目前市面上很多的桌面应用也在是浏览器上包了一层,而且大多做的比较粗糙,不太好用,所以都不太推荐。作为一名骨灰级的程序员,ChatGPT的重度使用者,这几天看到网上充斥... 查看详情
用pywinauto实现qt自动化(代码片段)
我试图使用pywinauto自动化一个QT应用程序,问题是pywinauto似乎无法点击或选择大多数对象,当它这样做,他们似乎是完全随机的那些我指定。即使使用诸如"点击输入"正确执行,但项目从未被实际点击。Pywinauto显然能够识别我试... 查看详情
python 桌面应用程序的安装程序和更新程序
】python桌面应用程序的安装程序和更新程序【英文标题】:InstallerandUpdaterforapythondesktopapplication【发布时间】:2012-09-2707:24:17【问题描述】:我正在使用python构建一个桌面应用程序,并使用Pyinstaller将其打包为一个exe。我想通过... 查看详情
pc端应用程序自动化测试——pywinautopywin32pyautogui(代码片段)
1前言PC端自动化测试使用到的python模块主要有pywinauto、win32gui、pyautogui,主要功能如下:pywinauto:主要使用到Application类,用于应用程序管理(打开与关闭应用等)、窗口管理(最小化、最大化、关闭窗口)pywin32:包含win32gui、wi... 查看详情
windows系统怎样查看oracle的安装路径?
答:在桌面上找到计算机,右键管理,点击服务和应用程序,双击服务,找到oracle;点击电脑左下角的开始--运行,输入sqlplus,回车。出现命令窗口;用户名填写scott--回车;密码填写scott,等待几秒就能成功连接上Oracle数据库;即... 查看详情
无论安装的 Lync 客户端版本如何,都从 C# WPF 桌面应用程序启动 Lync 对话
】无论安装的Lync客户端版本如何,都从C#WPF桌面应用程序启动Lync对话【英文标题】:StartingLyncconversationfromC#WPFdesktopappregardlessofLyncclientversioninstalled【发布时间】:2016-07-0409:02:33【问题描述】:我是Lync集成和开发的新手。我正在... 查看详情
聊聊pc端自动化最佳方案-pywinauto(代码片段)
...化最佳方案-WinAppDriver有小伙伴后台给我留言,说「 pywinauto」作为WinAppD 查看详情
pywinauto - 动态控制总是列在 print_control_identifiers()
】pywinauto-动态控制总是列在print_control_identifiers()【英文标题】:pywinauto-dynamiccontrolalwayslistedinprint_control_identifiers()【发布时间】:2020-10-2909:21:20【问题描述】:我正在尝试自动化连接和断开Internet的程序。因此,在一个窗口中,... 查看详情
mysql服务怎么让开机自动启动
1、打开计算机管理。在桌面我的电脑上,点击右键,选择管理功能。2、打开服务。点击服务和应用程序,在程序的右侧,点击服务;或者展开服务和应用程序,找到服务,点击展开服务。3、找到需要关闭的服务。这里需要关闭... 查看详情
如何离线安装python模块?比如windows下ui自动测试模块pywinauto
...不到独立安装包。先安装python2.7后,上pypi.python.org下载了pywinauto-0.5.4.zip,解压后,运行setup.py,报告Noez_setup.py,又搜了一下网上下载了个ez_setup.py,运行时候又提示urllib2.URLError:<urlopenerror[SSL:CERTIFICATE_VERIFY_FAILED]certificateverifyfai... 查看详情
为 iOS 和 Android 自动安装应用程序?
...一个应用程序。例如,这个工具(https://ninite.com/pro)可以为桌面/Windows执行类似的功能,iOS/Android可以执行类似的功能吗?用例是这样的- 查看详情
什么是javawebstart软件以及如何启动它
...art软件启动应用程序通过浏览器单击Web页中的链接。通过桌面图标如果您经常使用某一应用程序,则可以在桌面上或“开始”菜单中创建该应用程序的快捷方式。JavaWebStart会询问您是否想在“开始”菜单中创建快捷方式或条目。... 查看详情
怎样让linux启动后不运行桌面而是运行自己写的图形界面程序?
就是像启动桌面一样启动自己写的应用程序,但是桌面不要了,只显示我的程序换句话说,就是我想把一个普通的linux版本修改成一个专用的linux,比如一个手持设备,这样再启动的时候就不希望看到桌面啦之类的东西,而是直接进入到... 查看详情