Partager via


Vue d'ensemble de l'arborescence UI Automation

RemarqueRemarque

Cette documentation s'adresse aux développeurs .NET Framework qui veulent utiliser les classes UI Automation managées définies dans l'espace de noms System.Windows.Automation.Pour obtenir les informations les plus récentes sur UI Automation, consultez API Windows Automation : UI Automation (page éventuellement en anglais).

Les scripts de test et les produits de technologie d'assistance naviguent dans l'arborescence UI Automation pour rassembler des informations sur l'user interface (UI) et ses éléments.

L'arborescence UI Automation comporte un élément racine (RootElement) qui représente le bureau actuel et dont les éléments enfants représentent des fenêtres d'application. Chacun de ces éléments enfants peut contenir des éléments représentant des composants d'UI tels que des menus, des boutons, des barres d'outils et des zones de liste. Ces éléments peuvent eux-mêmes contenir des éléments tels que des éléments de liste.

L'arborescence UI Automation n'est pas une structure fixe ; elle est rarement affichée dans sa globalité, car elle peut contenir des milliers d'éléments. Certaines parties de l'arborescence sont générées selon les besoins ; l'arborescence peut subir des modifications lorsque des éléments sont ajoutés, déplacés ou supprimés.

Les fournisseurs UI Automation prennent en charge l'arborescence UI Automation en implémentant la navigation parmi les éléments dans un fragment, composé d'une racine (généralement hébergée dans une fenêtre) et d'un sous-arbre. Toutefois, les fournisseurs ne s'occupent pas de la navigation d'un contrôle à un autre. Celle-ci est gérée par le cœur d'UI Automation, à l'aide des informations des fournisseurs de fenêtre par défaut.

Cette rubrique comprend les sections suivantes.

  • Affichages de l'arborescence Automation
  • Rubriques connexes

Affichages de l'arborescence Automation

L'arborescence UI Automation peut être filtrée pour créer des affichages contenant uniquement les objets AutomationElement pertinents pour un client particulier. Cette approche permet aux clients de personnaliser la structure présentée via UI Automation selon leurs besoins particuliers.

Le client peut personnaliser l'affichage de deux manières : par portée et par filtrage. La portée consiste à définir l'étendue de l'affichage, en commençant par un élément de base : par exemple, il est possible que l'application souhaite rechercher uniquement les enfants directs du bureau ou tous les descendants d'une fenêtre d'application. Le filtrage consiste à définir les types d'éléments qui seront inclus dans l'affichage.

Les fournisseurs UI Automation prennent en charge le filtrage en définissant des propriétés sur des éléments, notamment les propriétés IsControlElementProperty et IsContentElementProperty.

UI Automation fournit trois affichages par défaut. Ces affichages sont définis par le type de filtrage exécuté ; la portée d'un affichage est définie par l'application. De plus, l'application peut appliquer d'autres filtres sur les propriétés, par exemple pour n'inclure que les contrôles activés dans un affichage de contrôle.

Affichage brut

L'affichage brut de l'arborescence UI Automation est l'arborescence complète des objets AutomationElement pour lesquels le bureau est la racine. L'affichage brut suit étroitement la structure de programmation native d'une application et constitue donc l'affichage le plus détaillé disponible. C'est également la base sur laquelle reposent les autres affichages de l'arborescence. Étant donné que cet affichage dépend de l'infrastructure d'UI sous-jacente, l'affichage brut d'un bouton WPF sera différent de celui d'un bouton Win32.

Pour obtenir l'affichage brut, il convient de rechercher des éléments sans spécifier de propriétés ou en utilisant le RawViewWalker pour naviguer dans l'arborescence.

Affichage de contrôle

L'affichage de contrôle de l'arborescence UI Automation simplifie la tâche du produit de technologie d'assistance consistant à décrire l'UI à l'utilisateur final et à faciliter l'interaction de ce dernier avec l'application, car il correspond étroitement à la structure d'UI perçue par un utilisateur final.

L'affichage de contrôle est un sous-ensemble de l'affichage brut. Il inclut tous les éléments d'UI de l'affichage brut qu'un utilisateur final considérerait comme interactif ou contribuant à la structure logique du contrôle dans l'UI. Les conteneurs d'éléments tels que les en-têtes de vue Liste, les barres d'outils, les menus et la barre d'état sont des exemples d'éléments d'UI qui contribuent à la structure logique de l'UI, mais qui ne sont pas eux-mêmes interactifs. Les éléments non interactifs utilisés simplement pour la disposition ou la décoration n'apparaîtront pas dans l'affichage de contrôle. Par exemple, un panneau utilisé uniquement pour disposer les contrôles dans une boîte de dialogue mais ne contenant aucune information. Les éléments non interactifs qui apparaîtront dans l'affichage de contrôle sont des graphiques contenant des informations et du texte statique dans une boîte de dialogue. Les éléments non interactifs inclus dans l'affichage de contrôle ne peuvent pas recevoir de focus clavier.

Pour obtenir l'affichage de contrôle, il convient de rechercher les éléments dont la propriété IsControlElement a la valeur true ou d'utiliser le ControlViewWalker pour naviguer dans l'arborescence.

Affichage du contenu

L'affichage du contenu de l'arborescence UI Automation est un sous-ensemble de l'affichage de contrôle. Il contient des éléments d'UI qui transmettent les informations vraies d'une interface utilisateur, notamment les éléments d'UI qui peuvent recevoir le focus clavier et un texte ne correspondant pas à une étiquette sur un élément d'UI. Par exemple, les valeurs d'une zone de liste déroulante fixe apparaîtront dans l'affichage du contenu, car elles représentent les informations utilisées par un utilisateur final. Dans l'affichage du contenu, une zone de liste déroulante et une zone de liste sont toutes deux représentées comme une collection d'éléments d'UI dans laquelle un, ou éventuellement plusieurs, éléments peuvent être sélectionnés. Le fait que l'une soit toujours ouverte et que l'autre puisse être développée et réduite est sans importance dans l'affichage du contenu, car il est conçu pour afficher les données ou le contenu qui sont présentés à l'utilisateur.

Pour obtenir l'affichage du contenu, il convient de rechercher les éléments dont la propriété IsContentElement a la valeur true ou d'utiliser le ContentViewWalker pour naviguer dans l'arborescence.

Voir aussi

Référence

AutomationElement

Concepts

Vue d'ensemble d'UI Automation