如何识别应用程序是否使用 Win32/UIA 支持在 pywinauto 中使用正确的后端设置启动相同的应用程序。?

How to identify if an application is using Win32/UIA backed to start the same in pywinauto with right backend settings.?

我正在使用 pywinauto 测试其中一个应用程序,该应用程序又使用多个应用程序。有没有一种机制可以让我查询和检查特定的后端应用程序是用什么开发的,win32/UIA 以便可以传递 backend=XX。 pywinauto.Application(后端="uia")

pywinauto.Application(后端="uia")

没有自动最佳后端检测。而且还不清楚该怎么做。某些应用程序可以使用这些后端中的任何一个(如 MFC 和某些 WinForms)完美地自动化,因为 UI 自动化 API 在许多情况下支持基于 Win32 API 的控件。

此外,用于应用程序开发的 GUI 框架与支持其 GUI 可测试性的无障碍技术之间也没有直接匹配。自定义控件会为此选择增加更多难度。

Inspect.exe中只有一个有用的属性“FrameworkId”只能通过“uia”后端访问。它并不总是相关的(有时它只是“Win32”而没有更多细节),但至少可以检测到“WPF”、“Qt5”、“WinForms”和“MFC”。