UIAutomation学习笔记

主要的3个Python第三方库

1. uiautomation


# 主要用途: 这个库主要用于Windows平台上的UI自动化。它可以帮助你自动操作和处理用户界面元素,例如点击按钮,读取文本,操作窗口等。
# import uiautomation as ui  # 导入控件控制库

2. pyperclip


# 主要用途: 这个库用于处理剪贴板功能,允许你的脚本复制和粘贴文本到系统的剪贴板。
# import pyperclip  # 导入剪切板相关库

3. pyautogui


# 主要用途: 这个库允许你控制鼠标和键盘来自动化屏幕上的操作。
# 功能丰富,除了基本输入之外,还可以处理屏幕图像识别,用于在屏幕上查找按钮、图像等。
# import pyautogui  # 导入自动操作库

4. pygetwindow


# 主要用途: 这个库专注于控制和管理Windows操作系统上的窗口。
# import pygetwindow as gw

uiautomation用法:


-h      展示命令帮助
-t      延迟时间, 默认是三秒, 延迟时间三秒之后开始枚举, 延时时间必须是整数
         您可以延迟几秒钟并使窗口处于活动状态,以便自动化可以枚举活动窗口
-d     枚举树的深度,必须是整数,如果为空,则枚举整棵树
-r      从根枚举:根是桌面窗口,如果为空,则从前台(当前)窗口枚举
-f      enumerate from focused control, if it is null, enumerate from foreground window
         从焦点控件枚举,如果为空,则从前台窗口枚举。
-c      enumerate the control under cursor, if depth is < 0, enumerate from its ancestor up to depth
         枚举光标下的控件,如果深度小于0,则从光标下的控件的祖先枚举到指定深度。
-a      show ancestors of the control under cursor
         显示控件下的祖先(父物件)。
-n      show control full name, if it is null, show first 30 characters of control's name in console,
         always show full name in log file @AutomationLog.txt
         显示控件的完整名称,如果为空,则在控制台中显示控件名称的前30个字符,在日志文件@AutomationLog.txt中始终显示完整名称。
-p      show process id of controls
         显示控件的进程ID。

if UnicodeError or LookupError occurred when printing,
try to change the active code page of console window by using chcp or see the log file @AutomationLog.txt

如果在打印时出现UnicodeError或LookupError,尝试通过使用chcp更改控制台窗口的活动代码页,或查看日志文件@AutomationLog.txt。

chcp, get current active code page
chcp 936, set active code page to gbk
chcp 65001, set active code page to utf-8

 

  1. chcp:这是一个用于配置控制台字符编码页的命令。它可以用于查看当前活动的字符编码页或更改它。

  2. chcp 936:这个命令将控制台的字符编码页设置为936,它对应于中文GBK编码。这意味着在控制台窗口中显示的文本将以GBK编码方式解释和显示,适用于中文字符。

  3. chcp 65001:这个命令将控制台的字符编码页设置为65001,它对应于UTF-8编码。UTF-8是一种通用的字符编码方式,支持多种语言和字符集,适用于显示各种语言的文本。

示例:


automation.py -t3
延迟时间三秒之后开始枚举, 3秒内并使窗口处于活动状态,以便自动化可以枚举活动窗口

automation.py -t3 -r -d1 -m -n
延迟时间三秒之后开始枚举, 3秒内并使窗口处于活动状态,以便自动化可以枚举活动窗口+
从根枚举:根是桌面窗口,如果为空,则从前台(当前)窗口枚举+
从焦点控件枚举,如果为空,则从前台窗口枚举。+
枚举树的深度为1+
显示控件的完整名称,如果为空,则在控制台中显示控件名称的前30个字符,在日志文件@AutomationLog.txt中始终显示完整名称。

automation.py -c -t3
枚举光标下的控件,如果深度小于0,则从光标下的控件的祖先枚举到指定深度
延迟时间三秒之后开始枚举, 3秒内并使窗口处于活动状态,以便自动化可以枚举活动窗口

automation.py -t 0

打印当前激活窗口的所有控件

automation.py -r -d 1 -t 0

打印桌面(树的根控件 )和它的第一层子窗口(TopLevel顶层窗口)

来自:https://github.com/yinkaisheng/Python-UIAutomation-for-Windows/blob/master/readme_cn.md

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
UI Automation是一种用于Windows平台的UI自动化框架,可以通过自动化来解决重复、枯燥的人工操作。目前有多种支持Windows平台的UI自动化工具或框架,其中包括Autoit、pywinauto、UIAutomation和airtest等。在这里,我主要介绍UIAutomation框架,它是由国人yinkaisheng开发实现的\[1\]。 UIAutomation框架封装了微软UIAutomation API,支持自动化Win32、MFC、WPF、Modern UI(Metro UI)、Qt、IE、Firefox、Chrome和基于Electron开发的应用程序\[2\]。它可以根据程序返回的IRawElementProviderSimple来遍历程序的控件,并获取控件的各种属性,从而进行自动化操作\[3\]。 需要注意的是,UIAutomation框架只支持Python 3版本,依赖comtypes和typing这两个包。但需要避免使用Python 3.7.6和3.8.1这两个版本,因为在这两个版本中comtypes无法正常工作\[2\]。 总结来说,UI Automation是一种用于Windows平台的UI自动化框架,可以通过自动化来解决重复、枯燥的人工操作。UIAutomation框架是其中的一种实现,它封装了微软UIAutomation API,支持多种应用程序的自动化操作\[1\]\[2\]\[3\]。 #### 引用[.reference_title] - *1* [Windows软件UI自动化测试之UiAutomation](https://blog.csdn.net/m0_37576542/article/details/127599232)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [Windows桌面程序自动化控制之uiautomation模块全面讲解](https://blog.csdn.net/zhangliang0000/article/details/129027669)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

CCSBRIDGE

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值