backendui-automationwin32guipywinautouia

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


I am using pywinauto to test one of the application which in turn uses multiple application. Is there a mechanism where in i can query and check what the specific backend application is developed with, win32/UIA so that backend=XX can be passed on . pywinauto.Application(backend="uia")

pywinauto.Application(backend="uia")


Solution

  • There is no automatic best backend detection. And it’s not clear how to do it. Some applications can be automated perfectly using any of these backends (like MFC and some of WinForms) because UI Automation API supports Win32 API based controls for many cases.

    Also there is no direct matching between GUI framework used for the app development and accessibility technology supporting its GUI testability. Custom controls can add more difficulties for this choice.

    There is only one useful property “FrameworkId” in Inspect.exe that can be reached by “uia” backend only. It’s not always relevant (sometimes it’s just “Win32” without any more details), but at least “WPF”, “Qt5”, “WinForms” and “MFC” can be detected.