Tutoriel UIAutomatorViewer : Inspecteur pour Android Tests
⚡ Résumé intelligent
UIAutomatorViewer est un inspecteur graphique fourni avec Android Kit de développement logiciel (SDK) qui capture une capture d'écran de l'appareil, affiche la hiérarchie des vues et expose les attributs Appium doit pouvoir localiser les boutons, les champs et les étiquettes de manière fiable.

Qu'est-ce que UIAutomatorViewer ?
UIAutomatorViewer est un outil d'interface graphique permettant de scanner et d'analyser les composants d'interface utilisateur d'une application. Android application. Pour automatiser n'importe quelle application. Android application utilisant AppiumL'utilisateur doit identifier les objets dans l'application testée (AUT). Avec UIAutomatorViewer, il est possible d'inspecter l'interface utilisateur d'une application. Android application permettant de découvrir la hiérarchie et d'afficher les différentes propriétés (id, texte…) de l'élément.
Lors de l'exécution de scripts d'automatisation, Appium Ce script utilise UIAutomatorViewer pour identifier les différentes propriétés de l'objet et s'en servir pour trouver l'objet recherché. Le reste de cette page détaille ce principe : lire l'attribut dans l'inspecteur, puis le réutiliser comme localisateur dans le script.
La capture d'écran ci-dessous montre l'outil dans son état de fonctionnement normal : l'écran de l'appareil capturé à gauche, l'arborescence des nœuds en haut à droite et la feuille de propriétés du nœud sélectionné en dessous.
Prérequis pour l'utilisation de UIAutomatorViewer
L'inspecteur lit l'écran en direct d'un véritable téléphone portable ou d'un émulateur ; une petite configuration doit donc être effectuée avant que la fenêtre n'affiche quoi que ce soit.
- A Java Kit de développement: uiautomatorviewer est un Java Application de bureau lancée par un script batch, un JDK doit donc être installé et accessible via le chemin système.
- Le Android SDK: Le visualiseur est intégré au SDK les outils Le dossier contient le SDK, qui doit donc être installé avant que le lanceur ne soit présent sur le disque.
- Outils de plateforme et adb : le spectateur communique avec l'appareil via le Android Pont de débogage, donc adb doit être installé et capable de détecter le combiné.
- Options pour développeurs et débogage USB : Les deux options doivent être activées dans les paramètres de l'appareil, sinon adb ne listera jamais l'appareil.
- Un câble USB compatible avec le transfert de données et son pilote : un câble de charge uniquement, ou un pilote du fabricant manquant sur Windows, produit une liste de périphériques vide.
- L'application testée : L'application doit être installée et ouverte sur l'appareil, car l'inspecteur capture tout ce qui est actuellement affiché à l'écran.
Une fois ces six éléments en place, l'étape de téléchargement est rapide.
Comment télécharger et installer UIAutomatorViewer
UIAutomatorViewer fait partie de Android Le gestionnaire de SDK sera accessible une fois installé. Téléchargez et installez le gestionnaire de SDK. Android SDK de le fonctionnaire Android Studio page de téléchargement.
Une fois que le Android Le SDK est installé, accédez à ce chemin :
c:\users\<username>\AppData\Local\Android\sdk\tools
Vous remarquerez un fichier batch portant ce nom :
uiautomatorviewer.bat
Double Cliquez dessus pour lancer l'interface graphique de UIAutomatorViewer. La liste des dossiers ressemble à celle ci-dessous, avec le fichier batch placé aux côtés des autres outils du SDK.
⚠️ Note de version : AndroidLa documentation héritée de l'interface utilisateur de UI Automator décrit encore le lancement de l'outil depuis /outils/mais l'appareil autonome obsolète Android Outils SDK Ce package n'est plus proposé par le gestionnaire de SDK dans la version actuelle. Android Studio Les installations anciennes et les archives SDK plus anciennes contiennent toujours le lanceur ; lors d’une nouvelle installation, le fichier est généralement absent, et Appium Inspector est l'outil de remplacement pratique. Les étapes initiales ci-dessus sont conservées car elles restent valables pour toute machine possédant encore le dossier d'outils.
Comment utiliser UIAutomatorViewer pour trouver des objets dans votre application
La séquence de capture est toujours la même : préparer l’appareil, placer l’écran souhaité devant la caméra, puis prendre la photo.
- Permettre options de développeur sur votre appareil. Lire Androidguide de configuration des options de développement sur l'appareil pour savoir comment activer les options pour développeurs sur Android dispositifs.
- Connectez votre Android connecter l'appareil au PC via un câble USB.
- Sélectionnez l'option "GuruL'application « 99 » figure dans la liste des applications, comme indiqué ci-dessous.
- Cliquez sur Capture d'écran de l'appareil bouton pour actualiser UIAutomatorViewer et pour charger le GuruL'interface graphique de l'application 99 est intégrée à l'outil. Le bouton se trouve dans la barre d'outils mise en évidence ci-dessous.
- Une fois l'actualisation terminée, une capture d'écran de GuruL'application 99 s'ouvre dans le volet de gauche.
- Comme vous le voyez sur l'image ci-dessus, sur le côté droit de la fenêtre se trouvent 2 panneaux.
Le panneau supérieur présente la hiérarchie des nœuds, c'est-à-dire la manière dont les composants de l'interface utilisateur sont organisés et contenus. Cliquer sur un nœud permet d'afficher les propriétés de l'élément d'interface utilisateur correspondant dans le panneau inférieur.
- Sélectionnez le bouton « Quiz » dans l'image ci-dessus pour afficher ses différentes propriétés (texte, identifiant de ressource…).
Comment utiliser ces propriétés pour identifier les éléments à automatiser
Vous ne pouvez pas utiliser directement les propriétés ; chacune possède un nom différent dans l’API d’automatisation. Voyons comment exploiter ces valeurs de propriété. Les attributs suivants permettent d’identifier le bouton « Quiz » dans le… Guru99 app.
| Attribut dans UIAutomatorViewer | Nom du localisateur dans le script | Utilisation typique |
|---|---|---|
| texte | Le nom | Étiquette visible sur un bouton ou un champ statique |
| identifiant de ressource | id | Le choix le plus stable lorsque le développeur en définit un |
| classe | nom du cours | Sélectionner un groupe de widgets du même type |
| contenu-desc | identifiant d'accessibilité | Localisateur multiplateforme qui aide également les lecteurs d'écran |
Chaque carteping est visible directement dans le panneau de détails du nœud. texte L'attribut peut être utilisé comme « nom », comme le montre la ligne de propriété ci-dessous.
Le identifiant de ressource L'attribut peut être utilisé comme « identifiant ».
Le classe L'attribut peut être utilisé comme « className ».
Le contenu-desc L'attribut peut être utilisé comme « AccessibilityId ».
En plus des attributs ci-dessus, nous pouvons écrire des expressions XPath pour l'identification des objets. Ces noms d'attributs sont également ceux que vous transmettez. capacités souhaitées et les stratégies de localisation une fois le script en cours d'exécution.
Comment créer des localisateurs XPath à partir des attributs de UIAutomatorViewer
XPath est utilisé lorsqu'aucun attribut n'est unique individuellement. Le panneau de détails du nœud affiche toutes les valeurs nécessaires à l'expression ; ainsi, une expression XPath correspond simplement à l'attribut déjà lu, exprimé sous forme de prédicat.
Parcourez le panneau dans cet ordre :
- Sélectionnez le nœud dans le panneau supérieur et lisez son classe, texte, identifiant de ressource et contenu-desc valeurs dans le panneau inférieur.
- Privilégiez un seul attribut stable. Si resource-id est renseigné, utilisez-le et arrêtez-vous là ; aucune requête XPath n’est nécessaire.
- Si aucun attribut n'est unique, combinez deux attributs dans un seul prédicat.
- Si l'étiquette change lors de l'exécution, remplacez le test d'égalité par une correspondance partielle.
Les modèles ci-dessous utilisent les noms d'attributs exactement tels que les indique UIAutomatorViewer.
<!-- match on the visible label --> //*[@text='Quiz'] <!-- match on the resource-id reported by the viewer --> //*[@resource-id='com.example.app:id/quiz_button'] <!-- match on the widget class --> //android.widget.Button[@text='Quiz'] <!-- partial match when the label is dynamic --> //*[contains(@text,'Qui')] <!-- two attributes combined for a unique match --> //*[@class='android.widget.Button' and @content-desc='Quiz']
Quelques règles permettent d'éviter que ces expressions ne deviennent fragiles. Les chemins absolus qui parcourent l'arbre entier deviennent invalides dès qu'un développeur ajoute un conteneur à une mise en page ; il est donc conseillé de commencer chaque expression par une double barre oblique et de la faire correspondre à un attribut. Les prédicats basés sur un index se comportent de la même manière : ils restent valides jusqu'à ce qu'une nouvelle ligne s'affiche à l'écran. De plus, une expression unique sur un écran de téléphone peut correspondre à plusieurs nœuds sur une tablette ; il est donc recommandé de réexaminer le même écran sur les deux formats avant d'intégrer le localisateur à une suite. Cette même rigueur s'applique à… XPath dans Selenium, où l'arbre est un DOM plutôt qu'une hiérarchie de vues.
Erreurs pouvant survenir lors de l'utilisation d'UIAutomatorViewer
La plupart des pannes surviennent avant même qu'un seul nœud ne soit dessiné, et la quasi-totalité d'entre elles sont liées à la connexion entre le poste de travail et le combiné.
- Je vois l'erreur — « Non » Android Des appareils ont été détectés par adb, comme le montre la capture d'écran ci-dessous. Comment puis-je résoudre ce problème ?
Solution: Assurez-vous que votre appareil est connecté à l'ordinateur.
Le tableau ci-dessous étend cette réponse aux autres messages rencontrés le plus fréquemment par les testeurs.
| Symptôme | Cause probable | Fixer |
|---|---|---|
| Non Android Les appareils ont été détectés par adb | Appareil non connecté, débogage USB désactivé ou câble de charge uniquement | Reconnectez-vous à l'aide d'un câble de données, activez le débogage USB, puis vérifiez que le combiné apparaît bien dans la liste des périphériques adb. |
| Appareil répertorié comme non autorisé | L'invite de reconnaissance d'empreinte digitale RSA n'a jamais été acceptée sur le combiné. | Déverrouillez l'écran, reconnectez-vous et appuyez sur Autoriser le débogage USB. |
| Le fichier uiautomatorviewer.bat est manquant. | Le package d'outils SDK obsolète n'est pas installé. | Utilisez une installation SDK existante qui le contient encore, ou passez à Appium inspecteur |
| La hiérarchie est vide ou la capture échoue. | L'écran a changé pendant le transfert, ou l'application bloque la capture d'écran. | Maintenez l'écran immobile et prenez à nouveau la capture d'écran ; les écrans sécurisés ne peuvent pas être capturés. |
| Le contenu de WebView s'affiche sous forme d'un seul nœud. | Le visualiseur ne lit que les vues natives | Inspectez le contenu Web à l'aide des outils de développement du navigateur ou d'un inspecteur prenant en charge le contexte Web. |
UIAutomatorViewer vs Appium Inspecteur vs Inspecteur de mise en page
On utilise généralement trois inspecteurs contre Android Les écrans, et ils résolvent des problèmes légèrement différents.
| Critère | UIAutomatorViewer | Appium inspecteur | Android Studio Inspecteur de mise en page |
|---|---|---|---|
| Navires avec | L'héritage Android package d'outils SDK | Une application de bureau autonome | Android Studio |
| Plateformes inspectées | Android uniquement | Android et iOS | Android uniquement |
| Nécessite un serveur en fonctionnement | Non, il communique directement avec adb. | Oui, il se connecte à un Appium session serveur | Non, il s'attache à un processus débogable |
| Génère un code de localisation | Non, les valeurs sont copiées manuellement. | Oui, il suggère des localisateurs et peut enregistrer des actions | Non, c'est une vue de débogage |
| Meilleur adapté à | Recherche rapide d'attributs sur une configuration plus ancienne | Création et validation de localisateurs pour une suite | Diagnostic des problèmes de mise en page et de rendu |
Pour une suite qui traverse déjà AppiumL'Inspecteur est le successeur naturel : il lit les mêmes attributs, exécute le même pilote UiAutomator2 en arrière-plan et fonctionne également sous iOS. Appium Projet d'inspecteur est régulièrement mis à jour, ce qui en fait un choix plus sûr pour les nouveaux projets, tandis que Layout Inspector reste utile lorsqu'il s'agit de comprendre pourquoi une vue s'affiche de manière anormale plutôt que de trouver une solution. Si vous hésitez encore sur la pile logicielle à utiliser, consultez la comparaison plus détaillée dans notre guide. outils de test d'applications mobiles est une bonne prochaine étape, et exemples de cas de test mobiles montrer à quoi ces localisateurs finissent par alimenter.







