pywinauto 0.6.8是否兼容Windows11?Application类调用报错求助
pywinauto在Windows11中使用Application类报错的解决方法
你遇到的并非pywinauto完全不兼容Windows11,而是0.6.8版本对Windows11的窗口识别逻辑存在适配问题,以下是几种可行的解决办法:
增加窗口加载延迟
Windows11的应用窗口初始化节奏和Win10存在差异,旧版本pywinauto可能在窗口完全创建前就尝试获取,导致报错。可以在启动应用后添加等待时间,或者通过进程ID连接:from pywinauto import application import time app = application.Application() app.start('Notepad.exe') time.sleep(2) # 等待窗口加载完成 app.top_window().PrintControlIdentifiers()更可靠的进程ID连接方式:
from pywinauto import application app = application.Application() proc = app.start('Notepad.exe') app.connect(process=proc.process_id) app.top_window().PrintControlIdentifiers()升级pywinauto版本
0.6.8是2020年的旧版本,后续版本已经针对Windows11做了适配。执行以下命令升级到最新稳定版:pip install --upgrade pywinauto升级后无需修改原代码,即可正常运行。
结合Desktop类定位窗口
既然你测试Desktop类可用,可通过进程ID过滤来定位目标窗口:from pywinauto import application, Desktop app = application.Application() proc = app.start('Notepad.exe') notepad_window = Desktop(backend="uia").window(process=proc.process_id) notepad_window.PrintControlIdentifiers()
内容的提问来源于stack exchange,提问作者Tao Sun
相关产品推荐
相关产品推荐

