AttributeError: 'NoneType' object has no attribute 'backend'.
错误原因: 选择的应用后端类型不对。
windows 上应用的后端类型有两种 win32 和 uia。
①win32 API (backend = “win32”) -目前的默认后端
支持的应用类型主要为:MFC,VB6,VCL, 简单的 WinForms 控件和大多数旧的遗留应用程序
②MS UI 自动化(backend = " uia")
支持的应用类型主要为:WinForms,WPF,Store apps,Qt5,browsers
注: Chrome 需要加上-force-renderer-accessibility
的 cmd 参数才可以使用。由于 Python 库 comtypes 的限制,不支持自定义属性和控件。
想了解更多可以查看:官方文档
实例演示:
我想调用 dbeaver 数据库工具的安装程序,因为它是 uia 类型的应用,默认后端是 win32 ,所以就报错了。
from pywinauto import ApplicationApplication.start(None, cmd_line='C:\\Users\\Administrator\\Desktop\\dbeaver-ce-6.1.3-x86_64-setup.exe')
然后我直接修改它的后端类型指定为 uia 就好了。
from pywinauto import ApplicationApplication(backend='uia').start('C:\\Users\\Administrator\\Desktop\\dbeaver-ce-6.1.3-x86_64-setup.exe')
喜欢的点个赞?吧!