Übersicht über die Benutzeroberflächenautomatisierungs-Struktur
Hinweis |
---|
Diese Dokumentation ist für .NET Framework-Entwickler vorgesehen, die die verwalteten UI Automation-Klassen verwenden möchten, die im System.Windows.Automation-Namespace definiert sind.Aktuelle Informationen zu UI Automation finden Sie unter Windows Automation API: UI Automation. |
Hilfstechnologieprodukte und Testskripts navigieren durch die UI Automation-Struktur, um Informationen über user interface (UI) und zugehörige Elemente zu sammeln.
In der UI Automation-Struktur gibt es ein Stammelement (RootElement), das den aktuellen Desktop darstellt. Die untergeordneten Elemente des Stammelements stellen Anwendungsfenster dar. Jedes dieser untergeordneten Elemente kann Elemente enthalten, die Komponenten von UI darstellen, z. B. Menüs, Schaltflächen, Symbolleisten und Listenfelder. Diese Elemente können wiederum Elemente wie z. B. Listeneinträge enthalten.
Die UI Automation-Struktur ist nicht festgelegt und wird selten vollständig angezeigt, da sie tausende von Elementen enthalten kann. Teile der Struktur werden bei Bedarf erstellt, und die Struktur kann sich beim Hinzufügen, Verschieben oder Entfernen von Elementen ändern.
Benutzeroberflächenautomatisierungs-Anbieter unterstützen die UI Automation-Struktur durch Implementierung von Navigation zwischen Elementen innerhalb eines Fragments, das aus einem Stamm (in der Regel in einem Fenster gehostet) und einer untergeordneten Struktur besteht. Anbieter sind jedoch nicht für die Navigation zwischen einzelnen Steuerelementen zuständig. Dies wird vom UI Automation-Kern unter Verwendung von Informationen der Standardfensteranbieter verwaltet.
Dieses Thema enthält folgende Abschnitte.
- Ansichten der Automatisierungsstruktur
- Verwandte Abschnitte
Ansichten der Automatisierungsstruktur
Die UI Automation-Struktur kann gefiltert werden, um Ansichten zu erstellen, die nur die für einen bestimmten Client relevanten AutomationElement-Objekte enthalten. Dieser Ansatz ermöglicht, die von UI Automation dargestellte Struktur an bestimmte Clientanforderungen anzupassen.
Zum Anpassen der Anzeige für den Client gibt es zwei Möglichkeiten: Bereichsauswahl oder Filterung. Bei der Bereichsauswahl wird der Umfang der Ansicht ausgehend von einem Basiselement definiert. Die Anwendung soll beispielsweise nur direkte untergeordnete Elemente des Desktops oder alle Nachfolgerelemente eines Anwendungsfensters suchen. Als Filterung wird das Definieren der Elementtypen bezeichnet, die in der Ansicht enthalten sein sollen.
Benutzeroberflächenautomatisierungs-Anbieter unterstützen Filtern durch die Definition von Eigenschaften für Elemente, einschließlich der IsControlElementProperty-Eigenschaft und der IsContentElementProperty-Eigenschaft.
UI Automation bietet drei Standardansichten. Diese Ansichten werden durch den Typ der verwendeten Filterung definiert. Der Bereich einer Ansicht wird von der Anwendung definiert. Weiterhin können von Anwendungen andere Filter auf Eigenschaften angewendet werden, z. B. um nur aktivierte Steuerelemente in eine Steuerelementansicht aufzunehmen.
Rohdatenansicht
Die Rohdatenansicht der UI Automation-Struktur ist die vollständige Struktur der AutomationElement-Objekte, deren Stamm der Desktop ist. Die Rohdatenansicht orientiert sich stark an der programmatischen Struktur einer Anwendung und ist daher die ausführlichste verfügbare Ansicht. Sie stellt gleichzeitig die Basis zum Erstellen anderer Ansichten der Struktur dar. Da diese Ansicht vom zugrunde liegenden UI-Framework abhängig ist, unterscheidet sich die Rohdatenansicht einer WPF-Schaltfläche von der einer Win32-Schaltfläche.
Sie erhalten die Rohdatenansicht, indem Sie ohne Angabe von Eigenschaften nach Elementen suchen oder mit RawViewWalker in der Struktur navigieren.
Steuerelementansicht
Die Steuerelementansicht der UI Automation-Struktur vereinfacht die Aufgabe von Hilfstechnologieprodukten, die UI für den Endbenutzer zu beschreiben und diesen bei der Interaktion mit der Anwendung zu unterstützen, da diese Ansicht der dem Endbenutzer angezeigten UI-Struktur sehr ähnelt.
Die Steuerelementansicht ist eine Teilmenge der Rohdatenansicht. Sie enthält alle UI-Elemente aus der Rohdatenansicht, die ein Endbenutzer als interaktiv bzw. als Teil der logischen Struktur des Steuerelements in der UI ansehen würde. Elementcontainer wie Listenansichtheader, Symbolleisten, Menüs und die Statusleiste sind Beispiele für UI-Elemente, die zur logischen Struktur der UI beitragen, jedoch selbst nicht interaktiv sind. Nicht interaktive, nur für das Layout oder zur Dekoration verwendete Elemente werden in der Steuerelementansicht nicht angezeigt. Ein Beispiel hierfür ist ein Bereich, der nur für das Layout der Steuerelemente in einem Dialogfeld verwendet wurde und selbst keine Informationen enthält. Zu nicht interaktiven Elementen, die in der Steuerelementansicht angezeigt werden, gehören Bilder mit Informationen und statischer Text in Dialogfeldern. Nicht interaktive Elemente in einer Steuerelementansicht können keinen Tastaturfokus erhalten.
Sie erhalten die Steuerelementansicht, indem Sie nach Elementen suchen, deren IsControlElement-Eigenschaft auf true festgelegt ist, oder indem Sie mit ControlViewWalker in der Struktur navigieren.
Inhaltsansicht
Die Inhaltsansicht der UI Automation-Struktur ist eine Teilmenge der Steuerelementansicht. Sie enthält UI-Elemente, die in einer Benutzeroberfläche tatsächliche Informationen anzeigen, einschließlich UI-Elementen, die den Tastaturfokus erhalten können, und Text, der keine Bezeichnung für ein UI-Element ist. Beispielsweise werden die Werte in einem Dropdown-Kombinationsfeld in der Inhaltsansicht angezeigt, da sie die vom Endbenutzer verwendeten Informationen darstellen. In der Inhaltsansicht werden sowohl Kombinationsfelder als auch Listenfelder als Auflistung von UI-Elementen dargestellt, wobei mindestens ein Element ausgewählt werden kann. Für Inhaltsansichten ist nicht relevant, dass stets eine Ansicht geöffnet und Erweitern und Reduzieren möglich ist, da diese Ansichten zum Anzeigen der Daten bzw. des Inhalts, der dem Benutzer angezeigt wird, vorgesehen sind.
Sie erhalten die Inhaltsansicht, indem Sie nach Elementen suchen, deren IsContentElement-Eigenschaft auf true festgelegt ist, oder indem Sie mit ContentViewWalker in der Struktur navigieren.