Microsoft UI Automation (UI Automation) is a framework that enables you to access, identify, and manipulate UI elements of any application by providing programmatic
access to these user interface elements. When testing against Windows-based applications that have implemented UI Automation
provider interfaces, you can use UI Automation to improve the object recognition for the controls in these applications. In
this Help, we will refer to such controls as
UI Automation controls.
Note: Silk4NET supports testing Windows-based applications that have implemented UI Automation on machines with
Microsoft Windows 8 or later.
UI Automation provides fallback support for applications that are based on the following technologies:
- Win32
- WPF
- WinForms
- Oracle JavaFX
- QT
- PowerBuilder
- Delphi
- Microsoft Office
For example, if you cannot record a test against your application because
Silk4NET cannot recognize the objects in the application or because
Silk4NET recognizes all objects in the application as
Control, you could try to enable the UI Automation support.
To enable the UI Automation support during recording, stop recording, enable the option
OPT_ENABLE_UI_AUTOMATION_SUPPORT, and resume recording. For additional information, see
Setting UI Automation Options.
Note: The UI Automation support overrides the standard technology-domain-specific support. When you are finished interacting with
the controls that require UI Automation support, disable the UI Automation support again to resume working with standard controls.
Note: If you are testing against a Java FX application, you do not have to enable the UI Automation support, as
Silk4NET enables this out-of-the-box for Java FX applications.
To ensure that the methods supported for a UI Automation control cover the corresponding controls in all supported technologies,
the
Silk4NET API supports only a subset of the methods and properties available for these controls. To call additional methods and properties
that are not available in the
Silk4NET API for a control, use dynamic invoke.