Test Uiautomator
| Dernière mise à jour | Version stable | Version finale | Version bêta | Version alpha |
|---|---|---|---|---|
| 17 juin 2026 | 2.3.0 | 2.4.0-rc01 | - | - |
Déclarer des dépendances
Pour ajouter une dépendance sur Test, vous devez ajouter le dépôt Maven de Google à votre projet. Pour en savoir plus, consultez la section Dépôt Maven de Google.
Ajoutez les dépendances correspondant aux artefacts dont vous avez besoin dans le fichier build.gradle de votre application ou de votre module :
Groovy
dependencies { // Use to implement UIAutomator tests androidTestImplementation "androidx.test.uiautomator:uiautomator:2.4.0-rc01" }
Kotlin
dependencies { // Use to implement UIAutomator tests androidTestImplementation("androidx.test.uiautomator:uiautomator:2.4.0-rc01") }
Pour en savoir plus sur les dépendances, consultez Ajouter des dépendances de compilation.
Commentaires
Vos commentaires nous aident à améliorer Jetpack. N'hésitez pas à nous contacter si vous découvrez de nouveaux problèmes ou si vous avez des idées pour améliorer cette bibliothèque. Veuillez consulter les problèmes existants de cette bibliothèque avant d'en signaler un nouveau. Vous pouvez ajouter votre vote à un problème existant en cliquant sur le bouton en forme d'étoile.
Pour en savoir plus, consultez la documentation sur l'outil Issue Tracker.
Test Uiautomator Shell version 1.0
Version 1.0.0-alpha03
3 décembre 2025
Publication de androidx.test.uiautomator:uiautomator-shell:1.0.0-alpha03. Liste des commits de la version 1.0.0-alpha03 these commits
Modifications apportées à l'API
- Modification de l'attente
startActivitypour attendre une nouvelle fenêtre. (I35da6, b/440021797) - Mise à jour de
screenSizePixeldansRecorderCommands(If558c, b/429173157)
Version 1.0.0-alpha02
13 août 2025
Publication de androidx.test.uiautomator:uiautomator-shell:1.0.0-alpha02. Liste des commits de la version 1.0.0-alpha02 these commits.
Version 1.0.0-alpha01
18 juin 2025
Publication de androidx.test.uiautomator:uiautomator-shell:1.0.0-alpha01. Liste des commits de la version 1.0.0-alpha01 these commits.
Nouvelles fonctionnalités
- Première version alpha de la bibliothèque de shell ui-automator pour exécuter des commandes shell en tant qu'utilisateur shell. Cette bibliothèque permet de lire stdout, stderr et d'écrire dans stdin d'un processus sh lancé par le shell. De facto, elle rétroporte
UiAutomation#executeShellCommandRweintroduite dans l'API 34.
Version 2.4
Version 2.4.0-rc01
17 juin 2026
Publication d'androidx.test.uiautomator:uiautomator:2.4.0-rc01, androidx.test.uiautomator:uiautomator-shell:2.4.0-rc01 et androidx.test.uiautomator:uiautomator-shell-android:2.4.0-rc01. Liste des commits de la version 2.4.0-rc01 .
Version 2.4.0-beta02
11 mars 2026
Publication d'androidx.test.uiautomator:uiautomator:2.4.0-beta02 et androidx.test.uiautomator:uiautomator-shell:2.4.0-beta02. Liste des commits de la version 2.4.0-beta02 these commits.
Corrections de bugs
- Correction de
UiObject2#scrollToElementOrNullqui générait une erreur au lieu de renvoyernull, et mise à jour de son type renvoyé. (If0109, b/479892735)
Version 2.4.0-beta01
11 février 2026
Publication d'androidx.test.uiautomator:uiautomator:2.4.0-beta01 et androidx.test.uiautomator:uiautomator-shell:2.4.0-beta01. Liste des commits de la version 2.4.0-beta01 .
Modifications apportées à l'API
- Définition des commandes sans état comme singletons. (I3394c, b/429173157)
- Mise à jour de l'API
RecorderCommands. (Ie09e8, b/429173157) - Simplification de l'API
RecorderCommandspour avoir un cycle de vie bien défini. (I30f89, b/444305673)
Version 2.4.0-alpha07
3 décembre 2025
Publication d'androidx.test.uiautomator:uiautomator:2.4.0-alpha07. Liste des commits de la version 2.4.0-alpha07 these commits.
Modifications apportées à l'API
- Modification de l'attente
startActivitypour attendre une nouvelle fenêtre. Le lancement est ainsi généralement synchrone, ce qui permet aux futures versions de Macrobenchmark de configurer la détection de fin de lancement. (I35da6, Id6e6f, b/440021797) - Suppression de l'API sans nom de package explicite dans
UiAutomatorTestScope. (I8c285, b/413417205)
Version 2.4.0-alpha06
13 août 2025
Publication d'androidx.test.uiautomator:uiautomator:2.4.0-alpha06. Liste des commits de la version 2.4.0-alpha06 these commits.
Nouvelles fonctionnalités
- Ajout d'API basées sur les fenêtres pour améliorer les tests en mode multifenêtre. Par exemple,
UiDevice#findWindowpeut désormais être utilisé pour rechercher unUiWindowspécifique en fonction d'unByWindowSelectorcréé avec les méthodes de fabriqueBy.Window. (I359c4, I40528, I8c963)
Version 2.4.0-alpha05
18 juin 2025
Publication d'androidx.test.uiautomator:uiautomator:2.4.0-alpha05. Liste des commits de la version 2.4.0-alpha05 these commits.
Modifications apportées à l'API
- Ajout de
UiObject2#waitForStablecomme raccourci pourUiObject2#accessibilityNodeInfo#waitForStable().
Version 2.4.0-alpha04
4 juin 2025
Publication d'androidx.test.uiautomator:uiautomator:2.4.0-alpha04. Liste des commits de la version 2.4.0-alpha04
Modifications apportées à l'API
- Changement de nom :
onViewdevientonElementpour clarifier son fonctionnement avec Compose. (I53a3b, b/419006806)
Corrections de bugs
- Correction de
waitForStableInActiveWindow. (290457f1, b/420349130)
Version 2.4.0-alpha03
20 mai 2025
Publication d'androidx.test.uiautomator:uiautomator:2.4.0-alpha03. Liste des commits de la version 2.4.0-alpha03
Corrections de bugs
- Correction de
waitForStableInActiveWindowqui générait une exception NPE dans certains cas. (Ibf50f, b/417046391)
Version 2.4.0-alpha02
7 mai 2025
Publication d'androidx.test.uiautomator:uiautomator:2.4.0-alpha02. Liste des commits de la version 2.4.0-alpha02 .
Nouvelles fonctionnalités
- Forme initiale de la nouvelle API
Uiautomator.UiAutomatorTestScopepeut être créé via la fabriqueuiAutomator, qui donne accès aux nouvelles APIonView. - Règles Lint initiales pour avertir de l'utilisation de
AccessibilityNodeInfo#getTextet suggérer l'utilisation detextAsString.
Modifications apportées à l'API
- Ajout de
Configurator#setDefaultDisplayIdpour définir un ID d'affichage afin de limiter toutes les recherches à (Icdf17). - Modification de
Searchable(interface partagée parUiDeviceetUiObject2) en public pour plus de commodité (I67f18).
Corrections de bugs
- Correction de la gestion des touches méta dans
UiDevice#pressKeyCodes. (I73f80). - Mise à jour de
UiDevice#getWindowRootspour toujours renvoyer les racines dans l'ordre Z (I87426). - Correction d'un problème où certains gestes étaient incomplets (I60dd3, If4edd).
- Correction d'une boucle infinie rare lors de l'appel de
UiDevice#scrollUntil(I39989).
Version 2.4.0-alpha01
26 juin 2024
Publication d'androidx.test.uiautomator:uiautomator:2.4.0-alpha01. Liste des commits de la version 2.4.0-alpha01 these commits.
Modifications apportées à l'API
- Abandon de
Configurator#getKeyInjectionDelayetsetKeyInjectionDelay, car le paramètre n'est plus utilisé maintenant que le texte est toujours injecté directement plutôt que par des pressions sur les touches. (I3bcc5).
Corrections de bugs
- Mise à jour du délai entre les événements de mouvement
UiObject2pour tenir compte des fréquences d'actualisation dynamiques (par exemple, l'affichage fluide) (I43f12). - Réduction de l'instabilité due à l'obsolescence des nœuds d'accessibilité sur certaines interfaces utilisateur en invalidant périodiquement le cache d'accessibilité (I3be25).
- Correction des exceptions
StaleObjectExceptionqui se produisaient lors de l'appel detoStringouhashCodesur unUiObject2obsolète. (I38ea1). - Amélioration des performances de
UiWatcheren ignorant les appelswaitForIdleinutiles. (I8c65e). - Correction des inexactitudes de Javadoc, en particulier pour clarifier quand chaque paramètre
Configuratorest utilisé. (Ie10b1, I71631).
Version 2.3.0
Version 2.3.0
21 février 2024
Publication d'androidx.test.uiautomator:uiautomator:2.3.0. Liste des commits de la version 2.3.0
Changements importants depuis la version 2.2.0
- Prise en charge de plusieurs écrans : ajout de la prise en charge de la recherche et de l'utilisation d'objets sur plusieurs écrans, ainsi que des méthodes
UiDevicepour gérer les écrans secondaires (Ie6544, I912cd). - Nouveaux sélecteurs:
- Conditions personnalisées : exposition d'une interface
Conditionpour prendre en charge les conditions d'attente personnalisées, et ajout des méthodesUiDevice#wait,UiObject2#waitetUiObject2#scrollUntilcorrespondantes (27c0ea, 099d6e). - Corrections de bugs et fiabilité
- Correction d'un problème entraînant parfois des erreurs dans le calcul de la taille d'affichage et pouvant ignorer certaines parties de l'écran (Ifc016). Il peut être nécessaire d'ajuster les coordonnées et les décalages utilisés dans les tests.
- Mise à jour de l'injection
MotionEventpour améliorer la précision (678ca3) et mieux émuler les gestes de l'utilisateur (454450). - Amélioration de la fiabilité des défilements (I7b059), des rotations (c6cea0), des clics longs (49572b), des pincements (3c619a), etc.
Version 2.3.0-rc01
7 février 2024
Publication d'androidx.test.uiautomator:uiautomator:2.3.0-rc01 sans aucune modification. Liste des commits de la version 2.3.0-rc01
Version 2.3.0-beta01
13 décembre 2023
Publication d'androidx.test.uiautomator:uiautomator:2.3.0-beta01. Liste des commits de la version 2.3.0-beta01.
Modifications apportées à l'API
- Changement de nom : les méthodes de marge basées sur le pourcentage
UiObject2deviennentsetGestureMarginPercentageetsetGestureMarginsPercentagepour plus de cohérence (I24435).
Corrections de bugs
- Amélioration de l'erreur générée lorsqu'un écran secondaire est introuvable ou inaccessible (116b23).
Version 2.3.0-alpha05
1er novembre 2023
Publication d'androidx.test.uiautomator:uiautomator:2.3.0-alpha05. Liste des commits de la version 2.3.0-alpha05
Modifications apportées à l'API
- Ajout de
UiObject2#getDrawingOrderpour exposer les informations sur l'ordre de dessin (index Z). (I5dfa4). - Ajout des méthodes
UiDevicepour obtenir, définir, figer et libérer la rotation des écrans secondaires. (I912cd).
Corrections de bugs
- Ajout d'une nouvelle tentative à
UiObject2#scrollUntillorsque la fin du défilement n'a pas pu être détectée (Ibac6f). - Correction d'un problème où
UiDeviceutilisait une instanceInstrumentationobsolète si elle était recréée (I18cae). - Correction d'une éventuelle exception NPE si l'ID d'affichage ne peut pas être déterminé lors du vidage des nœuds (Icafcb).
- Ajout d'un avertissement lors de l'exécution de clics/défilements sur des objets non cliquables/défilables (I4a5d9).
- Réduction de la vitesse de défilement par défaut de
UiObject2pour améliorer la fiabilité (I5e071).
Version 2.3.0-alpha04
26 juillet 2023
Publication d'androidx.test.uiautomator:uiautomator:2.3.0-alpha04. Liste des commits de la version 2.3.0-alpha04
Modifications apportées à l'API
- Ajout de
By.hasParentetBy.hasAncestorpour prendre en charge la recherche d'objets en fonction de leurs parents (I93c36). - Ajout de
UiObject2#getHintpour récupérer le texte d'aide d'un objet, et des méthodesBy.hintpour sélectionner des objets en fonction de leur texte d'aide (Idd345). - Ajout de
By.displayIdpour prendre en charge la sélection d'objets en fonction de l'écran sur lequel ils se trouvent (I1825b). - Ajout des méthodes
UiDevice#getDisplayHeight(int)etUiDevice#getDisplayWidth(int)pour trouver les dimensions d'un écran par son ID (Ie6544). - Ajout des méthodes
wait(SearchCondition, long)etwait(UiObject2Condition, long)pour assurer la rétrocompatibilité (Iebfda). - Modification de
UiDevice#executeShellCommanden public, mais déconseillé au lieu de masqué (Ic48a1).
Corrections de bugs
- Mise à jour de l'injection
MotionEventpour réduire l'instabilité en privilégiant la précision des gestes plutôt que la vitesse (678ca3). - Ajout du traçage aux méthodes gourmandes en ressources pour identifier les goulots d'étranglement (d17de3).
- Ajout d'un mécanisme de nouvelle tentative lors de l'initialisation d'une connexion UiAutomation (048caf).
- Correction d'une éventuelle exception NPE provenant de nœuds nuls dans
UiDevice#dumpWindowHierarchy(b725eb). - Correction d'erreurs inattendues lors de l'interrogation ou de l'utilisation d'écrans privés (985db6, 7053d4).
Version 2.3.0-alpha03
19 avril 2023
Publication d'androidx.test.uiautomator:uiautomator:2.3.0-alpha03. Liste des commits de la version 2.3.0-alpha03.
Modifications apportées à l'API
- Exposition d'une interface
Conditionpour autoriser les conditions d'attente personnalisées au lieu de s'appuyer uniquement sur les intégrations dansUntil, et mise à jour des méthodesUiDevice#waitetUiObject2#waitpour accepter cette interface (27c0ea). - Ajout de
UiObject2#scrollUntilpour prendre en charge le défilement jusqu'à ce qu'une condition soit remplie et atteindre la parité avecUiScrollable(099d6e). - Ajout de
UiDevice#setOrientationPortraitetsetOrientationLandscapepour faciliter les rotations sur différents types d'appareils (e13cb7). - Ajout de
UiObject2#setGestureMarginPercentpour prendre en charge la définition de marges par rapport à la taille de l'objet. (Ib8c77)
Corrections de bugs
- Correction des méthodes
UiScrollablequi utilisaient parfois des coordonnées non valides sur les SDK 18 à 22 (b53ece). - Correction de
UiObject2#setTextetclearTextqui ne parvenaient pas à modifier le texte sur les SDK 18 et 19 (77e41d). - Correction des
UiWatcherqui n'étaient pas exécutés dans le bon ordre (c85f92). - Correction d'un problème où la rotation de l'appareil n'était peut-être pas encore terminée après un changement d'orientation
UiDevice(c6cea0). - Amélioration de la fiabilité des clics longs, des glissements et des pincements (49572b, 3c619a).
Version 2.3.0-alpha02
11 janvier 2023
Publication de androidx.test.uiautomator:uiautomator:2.3.0-alpha02. Liste des commits de la version 2.3.0-alpha02.
Modifications apportées à l'API
- Journalisation retravaillée dans la bibliothèque pour fournir plus d'informations, signaler les problèmes potentiels et améliorer la cohérence.
- Ajout de
UiDevice#pressKeyCodespour permettre d'appuyer simultanément sur plusieurs touches, par exemple POWER et VOLUME_DOWN pour faire une capture d'écran (22e525). - Ajout de
UiDevice#setCompressedLayoutHierarchyet abandon d'UiDevice#setCompressedLayoutHeirarchypour corriger une faute de frappe dans le nom de la méthode (4e2f65). - Marquage de
UiAutomatorInstrumentationTestRunnercomme obsolète, car cette méthode gère lesUiAutomatorTestCaseobsolètes et n'est plus nécessaire (be6c85). - Mise à jour du délai entre
UiObject2MotionEventà deux fois la fréquence d'actualisation de l'écran afin de mieux émuler les gestes de l'utilisateur (454450). - Ajout de la compatibilité pour le texte couvrant plusieurs lignes et la correspondance de description (1625e6, b/255787130).
Corrections de bugs
- Correction des erreurs
StaleObjectExceptiongénérées occasionnellement lors de l'interrogation ou de l'attente d'objets (4cbcc0). - Correction des valeurs renvoyées par
UiScrollable#scrollToBeginning,scrollToEnd,flingToBeginningetflingToEndn'indiquant pas si la fin ou le début était atteint (d33e06). - Correction des méthodes
UiScrollable#scrollForwardetscrollBackwardqui ignoraient le délai d'inactivité configuré (29e4f3). - Correction du constructeur de copie
BySelectorqui ne gérait pas les sélecteurs de profondeur (6c7b91). - Correction du traitement des valeurs de pourcentage non valides dans
UiObject#pinchInetpinchOut(01b973). - Correction d'un problème rare qui empêchait la prise en charge du mode multifenêtre si la connexion
UiAutomationsous-jacente était réinitialisée (1bb956).
Version 2.3.0-alpha01
7 septembre 2022
Publication de androidx.test.uiautomator:uiautomator:2.3.0-alpha01. Liste des commits de la version 2.3.0-alpha01.
Modifications apportées à l'API
- Annotation de la valeur nulle de toutes les méthodes publiques.
- Passage à une injection asynchrone de
MotionEventavec un court délai pour des gestesUiObject2plus fluides. - Intervalle d'interrogation réduit en attendant de passer de 1 000 à 100 ms.
- Mise à jour de
UiDevice#wakeUpetUiDevice#sleeppour utiliserKEYCODE_WAKEUPetKEYCODE_SLEEPafin de prendre en charge les appareils qui ignorent le bouton Marche/Arrêt. - Ajout de
UiObject2#getDisplayIdet d'une prise en charge de la recherche et de la gestion des objets sur plusieurs écrans. - Ajout des méthodes
UiObject#clicketUiObject2#clickAndWaitpour cliquer sur un point à l'aide de ses coordonnées
Correction de bugs
- Correction d'un problème entraînant parfois des erreurs dans le calcul de la taille de l'affichage et pouvant ignorer certaines parties de l'écran, notamment en mode multifenêtre. (Ifc016c)
- Correction de la mise à l'échelle des captures d'écran dans
UiDevice#takeScreenshot. (Id80ad6) - Amélioration de la fiabilité de
Until.scrollFinishedetUiObject2#scroll. (I7b0595) - Correction des avertissements de
IncorrectContextUseViolationen mode strict. (Iffa6a0)