重庆seo整站优化,每平每屋在线设计家官网,什么是网站开发类课程,网站域名证书怎么获取前言
上一篇文章地址#xff1a;
pywinauto#xff1a;Windows桌面应用自动化测试#xff08;二#xff09;_Lion King的博客-CSDN博客
下一篇文章地址#xff1a;
暂无
一、win应用的后端技术
1、官方文档
安装了 pywinauto 后#xff0c;如何开始使用呢#xf…前言
上一篇文章地址
pywinautoWindows桌面应用自动化测试二_Lion King的博客-CSDN博客
下一篇文章地址
暂无
一、win应用的后端技术
1、官方文档
安装了 pywinauto 后如何开始使用呢首先必须确定哪种辅助技术pywinauto 的后端可以用于你的应用程序注意粗体部分。
在 Windows 上支持的辅助技术列表如下
1Win32 APIbackendwin32- 目前的默认后端
适用于 MFC、VB6、VCL、简单的 WinForms 控件以及大多数旧的遗留应用程序 2MS UI Automationbackenduia
适用于 WinForms、WPF、Store 应用、Qt5、浏览器等 注意在启动之前Chrome 需要 --force-renderer-accessibility 命令标志。由于 comtypes Python 库的限制不支持自定义属性和控件。
以上是官方文档的描述那么对于有些老的应用设计技术怎么办呢如Active Accessibility (MSAA)、IAccessible2
对于这些比较老的技术可能支持不是很好但可以用backendwin32去访问。 2、一个关于后端辅助技术的实验
我有一个qt5应用我们分别使用win32和uia去连接并打印元素标志看看有什么效果。
1win32
import time
from pywinauto.application import Applicationprint(1, time.time())
app Application(backendwin32).start(rC:\Program Files (x86)\SMoreVision\SMoreVision.exe) # backenduia
time.sleep(5)
print(2, time.time())
dialog app.window(titleSMore Vision)
print(3, time.time())
dialog.print_control_identifiers()
打印信息如下
1 1694663709.4932415 2 1694663715.176774 3 1694663715.176774 Control Identifiers:
Qt5152QWindowIcon - SMore Vision (L240, T70, R1680, B970) [Qt5152QWindowIcon, SMore Vision, SMore VisionQt5152QWindowIcon] child_window(titleSMore Vision, class_nameQt5152QWindowIcon)
Process finished with exit code 0
2uia
将上述代码的backendwin32改为backenduia打印信息如下
Control Identifiers:
Dialog - SMore Vision (L407, T80, R1847, B980) [SMore VisionDialog, SMore Vision, Dialog, SMore Vision0, SMore Vision1] child_window(titleSMore Vision, auto_idMainForm, control_typeWindow) | | GroupBox - (L409, T82, R1845, B124) | [GroupBox, SMore VisionGroupBox, GroupBox0, GroupBox1, SMore VisionGroupBox0, SMore VisionGroupBox1] | child_window(auto_idMainForm.widget_titleBar, control_typeGroup) | | | | GroupBox - (L409, T87, R547, B119) | | [GroupBox2, SMore VisionGroupBox2] | | child_window(auto_idMainForm.widget_titleBar.widget_caption, control_typeGroup) | | | | | | Image - (L411, T89, R439, B117) | | | [Image] | | | child_window(auto_idMainForm.widget_titleBar.widget_caption.label_logo, control_typeImage) | | | | | | Static - SMore Vision (L444, T89, R542, B117) | | | [Static, SMore Vision2, SMore VisionStatic] | | | child_window(titleSMore Vision, auto_idMainForm.widget_titleBar.widget_caption.label_title, control_typeText) | | | | Button - 设备管理 (L593, T93, R693, B113) | | [设备管理, 设备管理Button, Button, Button0, Button1] | | child_window(title设备管理,
...此处省略其他信息
3初步结论
如上所示选对正确的后端辅助技术极其重要否则没有可操作的元素的信息打印。另外win32打印的类为Qt5152QWindowIcon而uia打印的类为Dialog因此元素识别的结果在不同后端辅助技术也是不一样的。综上要求选择正确的后端技术。另外在使用print_control_identifiers()函数打印时如果元素很多那么他打印的时间可能很久如5分钟但只要不报错都是能打印的。
4注意事项
应该尽可能以管理员权限打开pycharm。