Delphi framework for automating Win32 applications using Microsoft's UI Automation library.
DelphiUIAutomation is a Delphi-based framework that wraps Microsoft's UI Automation library to automate rich client Win32 applications. It provides a consistent object-oriented API that simplifies interaction with UI elements, eliminating the need for scripting languages and making automation accessible directly from Delphi.
Delphi developers who need to automate testing or interaction with Win32 applications, particularly those building or maintaining Delphi-based rich client software.
Developers choose DelphiUIAutomation because it offers a Delphi-centric API that integrates seamlessly with Delphi testing frameworks, hiding the complexity of Microsoft's UIAutomation library and Windows messages behind a clean, object-oriented interface.
Delphi classes the wrap the MS UIAutomation library
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Allows writing automation tests entirely in Delphi, compatible with any Delphi testing framework, eliminating the need for external scripting languages.
Wraps Microsoft's complex UI Automation library into a clean, object-oriented interface, hiding the complexity of Windows messages and raw API calls.
Enhances automation for Delphi-specific controls like TStringGrid, TEdit, and TComboBox by exposing Automation ID and name properties, as shown in the controls sub-project.
Provides methods to launch, attach, kill processes, wait for idle states, and take screenshots, streamlining automation workflows.
Tested with Delphi XE5, and compatibility with newer Delphi versions is not guaranteed, potentially requiring updates for modern IDEs.
Only a limited set of controls are supported natively, and for some like TStringGrid, interactions such as right-clicking require manual mouse simulation, as admitted in the README.
Involves initializing the library with generated code from UIAutomationClient_TLB, described as large and complex, and extending controls for full functionality adds overhead.