首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

PC 自动化测试入门 - pywinauto 上篇:初识

pywinauto 是一款基于 Python 的开源库,用于自动化测试 Windows 平台的 GUI 应用程序。它能够模拟用户的键盘和鼠标操作,以及获取和修改应用程序的控件属性。...Windows上支持的可访问性技术列表 一旦你安装了pywinauto,第一件必要的事情是确定您的应用程序可以使用哪种可访问性技术(pywinauto的后端)。...ID为 2643,但实际进程ID为 836,导致无法查找到元素: pywinauto.findwindows.ElementNotFoundError: {'title': '无标题 - Notepad...', '无标题Document'] Inspect.exe 的结果: Inspect.exe 的结果中有 name 字段,但实际上组件并没有 name,使用 name 会导致组件无法匹配到。...我也将分享一些编程技巧和解决问题的方法,以帮助你更好地掌握Java编程。 我鼓励互动和建立社区,因此请留下你的问题、建议或主题请求,让我知道你感兴趣的内容。

2.2K31

pywinauto桌面应用自动化入门篇

可使用spy++和Inspect工具判断backend适合写哪种。 例如:如果使用Inspect的UIA模式,可见的控件和属性更多的话,backend可选uia,反之,backend可选win32。...# 返回符合条件的子元素列表,支持索引,是BaseWrapper对象(或子类) iter_children(**kwargs) # 返回子元素的迭代器,是BaseWrapper对象(或子类) descendants...(**kwargs) # 返回符合条件的所有后代元素列表,是BaseWrapper对象(或子类) iter_children(**kwargs) # 符合条件后代元素迭代器,是BaseWrapper对象...是否是parent的子控件 ctrl.legacy_properties().get('Value') # 可以获取inspect界面LegacyIAccessible开头的一系列字段,在源码uiawraper.py...PIL image对象,可继续使用其方法如下: # eg: ctrl.capture_as_image().save(img_path) ret = ctrl.rectangle() #

5.7K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    pywinauto教程

    2.工具介绍 Spy++ (定位元素工具(win32)) Inspect(定位元素工具(uia)) UI Spy (定位元素工具) Swapy(可简单生成pywinauto代码) 三、启动并创建一个实例对象...在pywinauto外再启动应用程序,需要sleep,等程序start 四、 窗口、对话框及控件元素定位方式 1.window,dialog定位方式 1)基于title定位 a)如何获取title?...使用print_control_identifiers()方法打印出当前窗口或对话框中的所有title 格式: app.YourDialog. print_control_identifiers() 示例如图...c)使用title定位方式的写法 Untitled_notepad = u’无标题 – 记事本’ app....或 app[‘无标题 – 记事本’] .draw_outline(colour = ‘red’) 注:适用于除英文外其他语言的系统,不用转码 2)top_window()定位 app.top_window

    8.3K32

    windows 桌面GUI自动化-3. pywinauto 操作指定window窗口

    前言 pywinauto 操作GUI应用程序上的元素,需先找到指定窗口,基于窗口查找框架再操作。 如何查看窗口信息?...当前面启动记事本后,可以通过inspect.exe 查看窗口信息 主要看2个属性,窗口的标题,也就是左上角我们看到的 还有一个是查看的class属性,只能通过工具查看 可以通过标题和class...(2) w.close() # 关闭 window() 方法 前面是通过窗口的的标题操作打开的窗口,再介绍一个最简单的方法是top_window(),例如 from pywinauto import...="Page Setup", class_name="#32770") 如果对话框的标题很长 - 那么输入的属性访问可能会很长,在这种情况下通常更容易使用 app.window(title_re="....*部分标题.*") 获取当前应用全部windows dialogs = app.windows() 这将返回应用程序的所有可见,启用的顶级窗口的列表。

    3.4K30

    PC端自动化测试实战教程-4-pywinauto 操作PC端应用程序窗口 - 上篇(详细教程)

    有兴趣的可以看一下这里有详细的介绍:什么是窗口 - Win32 apps | Microsoft Learn3.如何获取窗口信息宏哥这里介绍和分享两种方法:一种是通过工具获取,另一种是通过代码获取。...如下图所示:3.2方法2-代码通过print_control_identifiers()方法,print_control_identifiers()方法进行获取该应用下的所以窗口或组件内容(宏哥这里由于是...启动PC端的软件后,会出现软件的窗口界面,首先获取到窗口的信息,然后我们需要根据获取到的窗口信息连接到窗口,然后选择我们要测试的窗口,只有选择到要测试的窗口后,我们才能进行操作。...如下图所示:4.2方法2-窗口标题通过窗口的标题获取,代码如下:win = app['窗口的标题'] 4.2.1代码设计4.2.2参考代码# -*- coding:utf-8 -*-# 1.先设置编码,...如下图所示: 5.小结5.1遇到的问题今天主要讲解和分享了如何操作PC端应用程序的窗口、获取窗口信息、选择窗口,以及Windows10系统和Windows11系统代码的区别,主要是多了一段连接窗口的代码

    25522

    使用pywinauto操作弹出文件选择框的详细指南

    pywinauto是一个强大的库,能够帮助我们实现这一需求。本文将详细介绍如何使用pywinauto操作文件选择框,包括安装、基本用法和具体示例。...基本用法 pywinauto主要通过应用对象和窗口对象来进行操作。以下是基本的使用步骤: 启动应用程序 查找窗口 进行操作 操作文件选择框 在实际测试中,常常需要操作文件选择框。以下是详细步骤。...启动应用程序 首先,使用Application类启动或连接到目标应用程序。...'].click() # 例如点击“桌面”按钮 完整示例 以下是一个完整的示例,展示如何使用pywinauto打开记事本、操作文件选择框并打开一个文件。...确保目标窗口和控件的标题正确。

    36110

    PC端自动化测试(一)

    backend=“uia”) WinForms,WPF,Store apps,Qt5,浏览器 进程数量 单进程 Application作用范围是一个进程 跨进程 Desktop作用范围可以跨进程 GUI对象检查工具...Inspect.exe spy++.exe ViewWizard 打开应用程序 from pywinauto.application import Application # 打开指定的应用程序 #...选择指定的窗口 # 方式一:app[类名/标题] :推荐使用该方式 # 1.通过窗口类型来选择dlg = app["TNavicatMainForm"] # 2.通过窗口标题来选择dlg = app["...# 窗口最小化dlg.minimize() # 窗口恢复正常大小dlg.restore() # 查找窗口显示状态,最大化为1,正常为0status = dlg.get_show_state() # 获取当前窗口的坐标位置...RadioButton 组合框 ComboBox 编辑栏 Edit 列表框 ListBox 弹出菜单 PopupMenu 工具栏 Toolbar 树状视图 Tree View 菜单项 MenuItem 静态内容

    4K61

    软件测试|自动化界面操作神器pywinauto教程(一)

    本文将介绍Pywinauto的基本使用方法,帮助读者快速上手并开始自动化Windows界面操作。...和findwindows:from pywinauto import Applicationfrom pywinauto import findwindows启动应用程序使用Application类的start...以下示例展示了如何启动记事本应用程序:app = Application().start("notepad.exe")运行脚本,将打开一个空白的记事本页面,如下图:图片连接到应用程序窗口使用findwindows...(handle=handle)操作应用程序窗口控件使用Application类的window()方法获取应用程序窗口对象,然后可以通过控件的属性和方法对窗口进行操作。...以下示例展示了如何处理保存确认对话框:dialog = app.Dialogdialog.SaveAs.Yes.click()关闭应用程序在完成操作后,可以使用Application类的kill()方法关闭应用程序

    3K20

    pywinauto,一款Win自动化利器!

    适合Windows系统的软件(GUI),可以通过Pywinauto遍历窗口(对话框)和窗口里的控件,也可以控制鼠标和键盘输入,所以它能做的事情比之前介绍的pysimplegui更多 一般使用pip安装就行了...Inspect和Spy++需要自己安装一下 下面是Application对象的主要方法 举例,启动一个微信应用,通过进程号连接,进程号就是在任务管理器里详细信息看到的PID 3.WindowSpecification...我们要获取窗口,一个窗口都是一个WindowSpecification对象,可以通过Application对象的window()方法获取,参数可以是title、classname或者best_match...,访问之后会返回一个继承于ElementInfo的对象(UIAElementInfo或HwndElementInfo),比较重要的属性或方法如下 这些元素除了有element_info可以获取一些元素的主要信息...,表示按下多少次 当然,很多时候使用down、up修饰感觉不够简洁,所以pywinauto还提供了简化写法,使用+代替{VK_SHIFT},使用^代替{VK_CONTROL},使用%代替{VK_MENU

    17710

    PC端自动化测试实战教程-6-pywinauto 打印和保存控件菜单树结构之ElementNotFoundError(详细教程)

    在pywinauto中可以使用 print_control_identifiers() 方法打印控件菜单树结构,这对我们查找控件非常方便。...2.控件操作程序窗口中的内容,把它称之为控件,我们要对这个窗口的内容进行操作,就需要选择到对应的控件,获取所有控件我们可以通过print_control_identifiers()这个方法,来获取这个窗口下的直接子控件...运行失败了,一时很懵,不知道如何解决,查了好多资料发现好多人都遇到同样的问题,但是就是没有给出解决办法,有的是提一句如何如何做,宏哥都一一试过了,都不行。...由于宏哥写文章的时候,手头还是没有Windows10,就网上找了一台免费微软提供类似win10系统,然后简单的搭建了一个环境给小伙伴或者童鞋们进行演示,有兴趣的自己可以试一下:实验 - 使用 Microsoft...即便start()方法在内部尝试连接,但如果UI还未完全加载,后续立即进行窗口或控件查找可能失败。于是宏哥就加了等待的代码。

    12223

    windows 桌面GUI自动化-4. pywinauto 操作窗口控件child_window()

    查看窗口控件 先学会如何查看窗口框架,可以用inspect.exe 查看窗口的层级结构 以打开的记事本为例 也可以通过print_ctrl_ids()方法 (另外一个print_control_identifiers...") win = app.window(title_re="无标题 - 记事本") # 获取当前窗口下控件 print(win.print_ctrl_ids()) 结果如下 Dialog - '无标题...*kwargs) # 返回符合条件的子元素列表,支持索引,是BaseWrapper对象(或子类) iter_children(**kwargs) # 返回子元素的迭代器,是BaseWrapper对象(或子类...) descendants(**kwargs) # 返回符合条件的所有后代元素列表,是BaseWrapper对象(或子类) iter_children(**kwargs) # 符合条件后代元素迭代器,是...BaseWrapper对象(或子类) **kwargs 常用的一些参数 class_name=None, # 类名 class_name_re=None, # 正则匹配类名 title=None, #

    2.4K40

    Pywinauto之Windows UI 自动化1

    1、导入模块from pywinauto.application import Application 2、判断是被测对象是什么语言,如官方文档所示,主要是判断backend是什么类别 Once you...>然后鼠标点一下你需要测试的程序窗体,inspect就会显示相关信息。 下图为点击window文件夹的结果,inspect中显示了相关的信息,如下图所示。说明backend为uia。 ?...主要有两种对象可以建立这种入口点——Application() , Desktop(). Application的作用范围是一个进程,如一般的桌面应用程序都为此类。...使用方法见entry-points-for-automation 三、控件定位方式 1、window,dialog定位方式 1、基于title定位 a)如何获取title?...使用print_control_identifiers()方法打印出当前窗口或对话框中的所有title 格式: app.YourDialog. print_control_identifiers() D

    8.7K32

    推荐一款Windows自动化工具,一个强大的Python库!

    简洁的语法:Pywinauto采用Python语法,易于学习和使用,降低了自动化脚本的编写难度。...2、Pywinauto的安装 打开命令行工具(如cmd或PowerShell),输入以下命令安装Pywinauto: pip install pywinauto 如果遇到权限问题,可以尝试使用管理员权限运行命令行工具...如果你的程序比较老旧,可以尝试使用backend="win32"。 3、连接已启动的应用程序(如果需要)Pywinauto 能够轻松识别 Windows 系统中的各种窗口。...它可以通过窗口标题、类名、进程 ID 等多种方式定位目标窗口。...比如: main_window = app["目标窗口标题"] main_window.minimize() 4、Pywinauto提供了丰富的方法来与窗口内的各种控件进行交互。

    27210

    PC端自动化测试实战教程-5-pywinauto 操作PC端应用程序窗口 - 下篇(详细教程)

    1.简介上一篇宏哥主要讲解和介绍了如何获取PC端应用程序窗口信息和如何连接窗口对其进行操作的常用的几种方法。...="Page Setup", class_name="#32770")如果对话框的标题很长 - 那么输入的属性访问可能会很长,在这种情况下通常更容易使用app.window(title_re="....*部分标题.*") 获取当前应用全部windowsdialogs = app.windows() 这将返回应用程序的所有可见,启用的顶级窗口的列表。...在pywinauto中,通过指定backend="uia",用户可以选择使用UI Automation作为底层引擎来与应用程序的UI元素进行交互。...使用UI Automation后端,开发者可以更容易地定位和操作UI元素,如获取元素的属性、模拟鼠标和键盘操作、监听UI事件等,这对于创建复杂的自动化测试场景尤其有用。

    20111

    PC端自动化测试实战教程-1-pywinauto 环境搭建(详细教程)

    可以借助于GUI对象检查工具来确定程序到底适用于那种backend。如果使用 inspect 的uia模式,可见的控件和属性更多的话,backend可选uia,反之,backend可选win32。...如下图所示:4.它可以单独复制出来,放在桌面使用。5.2.1“检查”窗口“检查”窗口有多个主要部分:标题栏。 显示“检查”窗口句柄 (HWND)。菜单栏。 提供对“检查”功能的访问。工具栏。...宏哥专门整理了一下,放在github上了,关注宏哥的公众号发送:inspect,即可获取下载地址。有的人不知道公众号如何发送获取下载地址,经常是发私信。...如下图所示:2.然后鼠标点一下你需要测试的程序窗体,inspect就会显示相关信息。...如下图所示:7.小结本文介绍了Pywinauto的基本使用方法,包括安装、导入模块、启动应用程序、如何判断程序的backend是’win32’还是’uia’。

    60431

    windows GUI自动化怎么做

    、显示和关闭窗口、窗口前置、窗口聚焦、获取窗口位置等),通常用的较多的是 win32gui hld = win32gui.FindWindow(None,u"Adobe Acrobat") #返回窗口标题为...Adobe Acrobat的句柄通过父窗口句柄获取子句柄#parent为父窗口句柄iddef get_child_windows(parent): 下面重点讲这个库 pywinauto pywinauto...对于 pywinauto 模块,主要使用其中的 Application 类,需要导入包,并定义一个 Application 类的对象。...这里先介绍官方文档的两种方法: (1)通过top_dlg = app.top_window_() 来获取最上面的window(不推荐,如果有新进程,就会得到错误对象) (2)通过find_dlg = app.window..._(title_re = ‘ ’, class_name = ‘ ’) 方法获得,title_re和 class_name这两个可以单独使用也可以一块使用,因为有时没有标题文本,也有时一个窗口类名有多个对象

    2.3K40

    Python结合Pywinauto 进行 Windows UI 自动化

    它可以允许你很容易的发送鼠标、键盘动作给Windows的对话框和控件。 其中,最主要功能为对windows标准控件的一系列动作可编程处理。包括对窗口的指定、鼠标或键盘操作、获得控件属性等等。...程序的开始为对所需应用的启 动或连接。获得程序连接后,pywinauto通过窗口的名称、类名、是否可见等属性寻找匹配的窗口,进而通过类似方法寻找用户所需的控件,并获得相应的 句柄。...之后,用户可通过易理解的编程方式对指定控件进行相关操作的编程,包括鼠标点击、键盘输入、判断控件间关系、获取控件属性等。...windows下使用pywinauto进行窗口操作 用pywinauto进行win32应用程序的测试 举个例子 #!...window_name,即标题文本 window_name = u"无标题 - 记事本" menulist = u"帮助->关于记事本" # 通过Spy++ 获取controller

    5K20

    Python 爬取朋友圈最新方法!!

    ,心想这款产品是怎么拿到个人的朋友圈数据的,直到看到它的使用流程首先需要添加微信好友,瞬间就笑着明白了。...其实,朋友圈一直是很多人的爬虫想要采集的领地。 在之前,朋友圈只能在手机或Pad上查看,要想获取朋友圈的数据,要么手工进行人肉复制,要么通过钩子进行处理。 这两种操作一个太低端了,一个又太高端了。...用于获取微信电脑版的进程信息; pywinauto 用于自动化控制微信电脑版 然后,我们通过 psutil 库获取到微信电脑版程序的进程ID: PID = 0 for proc in psutil.process_iter...: 我们来看一个具体的例子,例如朋友圈内的这条信息: 它在 dump_tree() 中的结构如下所示: 可以看到,窗口内的每一个信息,比如联系人的名称、朋友圈内容、朋友圈发布时间等等都是各种组件构成的...我们可以通过获取和控制这些个组件,来实现数据的提取。 比如在这个例子里,我们就可以通过定位到 Edit 这个组件来获取到这条朋友圈的内容: 跟其他的工具比起来,是不是算是异常简单了?

    4K30

    用pywinauto抓取微信公众号

    大家好,又见面了,我是你们的朋友全栈君。 本文内容在于讨论用pywinauto 如何获取微信控件的问题,欢迎各位大牛指点迷津。...1 pywinauto pywinauto是个在PC端可以使用的自动化测试框架,感谢作者提供这么好的框架。...Application import psutil # 通过程序名称获取第一个进程ID def get_pid(name): ''' 作用:根据进程名获取进程pid 返回...") # 2.1 打印主窗口控件列表,然后你可以通过控件id操作这个对象 win.print_control_identifiers(); print('-----------...我已经确信,【微信】控件采用了某种方法屏蔽了,我不知道如何才能获取这些控件,然后操作它? 我的微信是新版本 3.6.0.18 如果你知道欢迎一起讨论。

    1.4K10
    领券