Test Uiautomator
| Actualización más reciente | Versión estable | Versión potencial | Versión beta | Versión alfa |
|---|---|---|---|---|
| 17 de junio de 2026 | 2.3.0 | 2.4.0-rc01 | - | - |
Cómo declarar dependencias
Para agregar una dependencia en test, debes agregar el repositorio de Maven de Google a tu proyecto. Lee sobre el repositorio de Maven de Google para obtener más información.
Agrega las dependencias de los artefactos que necesites en el archivo build.gradle de tu app o módulo:
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") }
Para obtener más información sobre las dependencias, consulta Cómo agregar dependencias de compilación.
Comentarios
Tus comentarios ayudan a mejorar Jetpack. Avísanos si descubres nuevos errores o tienes ideas para mejorar esta biblioteca. Consulta los errores existentes de esta biblioteca antes de crear uno nuevo. Puedes agregar tu voto a un error existente haciendo clic en el botón de la estrella.
Consulta la documentación sobre la herramienta Issue Tracker para obtener más información.
Test Uiautomator Shell versión 1.0
Versión 1.0.0-alpha03
3 de diciembre de 2025
Lanzamiento de androidx.test.uiautomator:uiautomator-shell:1.0.0-alpha03. La versión 1.0.0-alpha03 contiene estas confirmaciones.
Cambios en la API
- Se cambió la espera de
startActivitypara esperar una ventana nueva (I35da6, b/440021797). - Se actualizó
screenSizePixelenRecorderCommands(If558c, b/429173157).
Versión 1.0.0-alpha02
13 de agosto de 2025
Lanzamiento de androidx.test.uiautomator:uiautomator-shell:1.0.0-alpha02. La versión 1.0.0-alpha02 contiene estas confirmaciones.
Versión 1.0.0-alpha01
18 de junio de 2025
Lanzamiento de androidx.test.uiautomator:uiautomator-shell:1.0.0-alpha01. La versión 1.0.0-alpha01 contiene estas confirmaciones.
Nuevas funciones
- Primera versión alfa de la biblioteca de shell de ui-automator para ejecutar comandos de shell como usuario de shell. Esta biblioteca permite leer stdout, stderr y escribir en el stdin de un proceso sh iniciado por el shell. De hecho, realiza un porting inverso de
UiAutomation#executeShellCommandRweintroducido en la API 34.
Versión 2.4
Versión 2.4.0-rc01
17 de junio de 2026
Lanzamiento de androidx.test.uiautomator:uiautomator:2.4.0-rc01, androidx.test.uiautomator:uiautomator-shell:2.4.0-rc01 y androidx.test.uiautomator:uiautomator-shell-android:2.4.0-rc01. La versión 2.4.0-rc01 contiene estas confirmaciones.
Versión 2.4.0-beta02
11 de marzo de 2026
Lanzamiento de androidx.test.uiautomator:uiautomator:2.4.0-beta02 y androidx.test.uiautomator:uiautomator-shell:2.4.0-beta02. La versión 2.4.0-beta02 contiene estas confirmaciones.
Correcciones de errores
- Se corrigió
UiObject2#scrollToElementOrNullque arrojaba en lugar de mostrarnully se actualizó su tipo de retorno (If0109, b/479892735).
Versión 2.4.0-beta01
11 de febrero de 2026
Lanzamiento de androidx.test.uiautomator:uiautomator:2.4.0-beta01 y androidx.test.uiautomator:uiautomator-shell:2.4.0-beta01. La versión 2.4.0-beta01 contiene estas confirmaciones.
Cambios en la API
- Convierte los comandos sin estado en singleton. (I3394c, b/429173157)
- Actualiza la API de
RecorderCommands. (Ie09e8, b/429173157) - Simplifica la API de
RecorderCommandspara tener un ciclo de vida bien definido. (I30f89, b/444305673)
Versión 2.4.0-alpha07
3 de diciembre de 2025
Lanzamiento de androidx.test.uiautomator:uiautomator:2.4.0-alpha07. La versión 2.4.0-alpha07 contiene estas confirmaciones.
Cambios en la API
- Se cambió la espera de
startActivitypara esperar una ventana nueva. Esto hace que el lanzamiento sea generalmente síncrono y permite que las versiones futuras de Macrobenchmark configuren la detección de finalización del lanzamiento. (I35da6, Id6e6f, b/440021797) - Se quitó la API sin nombre de paquete explícito en
UiAutomatorTestScope. (I8c285, b/413417205)
Versión 2.4.0-alpha06
13 de agosto de 2025
Lanzamiento de androidx.test.uiautomator:uiautomator:2.4.0-alpha06. La versión 2.4.0-alpha06 contiene estas confirmaciones.
Nuevas funciones
- Se agregaron APIs basadas en ventanas para mejorar las pruebas multiventana, es decir, ahora se puede usar
UiDevice#findWindowpara encontrar unUiWindowespecífico según unByWindowSelectorcompilado con métodos de fábricaBy.Window. (I359c4, I40528, I8c963)
Versión 2.4.0-alpha05
18 de junio de 2025
Lanzamiento de androidx.test.uiautomator:uiautomator:2.4.0-alpha05. La versión 2.4.0-alpha05 contiene estas confirmaciones.
Cambios en la API
- Se agregó
UiObject2#waitForStablecomo un acceso directo paraUiObject2#accessibilityNodeInfo#waitForStable().
Versión 2.4.0-alpha04
7 de junio de 2023
Lanzamiento de androidx.test.uiautomator:uiautomator:2.4.0-alpha04. La versión 2.4.0-alpha04 contiene estas confirmaciones.
Cambios en la API
- Se cambió el nombre de
onViewaonElementpara aclarar que funciona con Compose (I53a3b, b/419006806).
Correcciones de errores
- Se corrigió
waitForStableInActiveWindow(290457f1, b/420349130).
Versión 2.4.0-alpha03
20 de mayo de 2025
Lanzamiento de androidx.test.uiautomator:uiautomator:2.4.0-alpha03. La versión 2.4.0-alpha03 contiene estas confirmaciones.
Correcciones de errores
- Se corrigió
waitForStableInActiveWindowque arrojaba NPE en algunos casos (Ibf50f, b/417046391).
Versión 2.4.0-alpha02
7 de mayo de 2025
Lanzamiento de androidx.test.uiautomator:uiautomator:2.4.0-alpha02. La versión 2.4.0-alpha02 contiene estas confirmaciones.
Nuevas funciones
- Forma inicial de la nueva API de
Uiautomator. Se puede crearUiAutomatorTestScopea través de la fábricauiAutomatorque da acceso a las nuevas APIs deonView. - Reglas de lint iniciales para advertir sobre el uso de
AccessibilityNodeInfo#getTexty sugerir el uso detextAsString.
Cambios en la API
- Se agregó
Configurator#setDefaultDisplayIdpara establecer un ID de pantalla para restringir todas las búsquedas a (Icdf17). - Se cambió
Searchable(interfaz compartida porUiDeviceyUiObject2) a pública para mayor comodidad (I67f18).
Correcciones de errores
- Se corrigió el control de las teclas meta en
UiDevice#pressKeyCodes. (I73f80). - Se actualizó
UiDevice#getWindowRootspara que siempre muestre raíces en orden Z (I87426). - Se solucionó un problema por el que ciertos gestos estaban incompletos (I60dd3, If4edd).
- Se corrigió un bucle infinito poco frecuente cuando se llamaba a
UiDevice#scrollUntil(I39989).
Versión 2.4.0-alpha01
26 de junio de 2024
Lanzamiento de androidx.test.uiautomator:uiautomator:2.4.0-alpha01. La versión 2.4.0-alpha01 contiene estas confirmaciones.
Cambios en la API
- Se dejaron de usar
Configurator#getKeyInjectionDelayysetKeyInjectionDelay, ya que el parámetro ya no se usa ahora que el texto siempre se inserta directamente en lugar de presionar teclas. (I3bcc5).
Correcciones de errores
- Se actualizó la demora entre los eventos de movimiento
UiObject2para tener en cuenta las frecuencias de actualización dinámicas (es decir, Smooth Display) (I43f12). - Se redujo la inestabilidad de la obsolescencia del nodo de accesibilidad en ciertas IUs invalidando periódicamente la caché de accesibilidad (I3be25).
- Se corrigieron los
StaleObjectExceptionque se producían cuando se llamaba atoStringohashCodeen unUiObject2obsoleto. (I38ea1). - Se mejoró el rendimiento de
UiWatcheromitiendo llamadaswaitForIdleinnecesarias. (I8c65e). - Se corrigieron las imprecisiones de Javadoc, en especial para aclarar cuándo se usa cada parámetro
Configurator. (Ie10b1, I71631).
Versión 2.3.0
Versión 2.3.0
21 de febrero de 2024
Lanzamiento de androidx.test.uiautomator:uiautomator:2.3.0. La versión 2.3.0 contiene estas confirmaciones.
Cambios importantes desde la versión 2.2.0
- Compatibilidad con varias pantallas: Se agregó compatibilidad para encontrar y operar objetos en varias pantallas, y
UiDevicemétodos para administrar pantallas secundarias (Ie6544, I912cd). - Nuevos selectores:
- Condiciones personalizadas: Se expuso una interfaz
Conditionpara admitir condiciones de espera personalizadas y se agregaron los métodosUiDevice#wait,UiObject2#waityUiObject2#scrollUntilcorrespondientes (27c0ea, 099d6e). - Correcciones de errores y confiabilidad
- Se solucionó un problema por el que, en ocasiones, los cálculos del tamaño de la pantalla eran incorrectos y podían ignorar partes de la pantalla (Ifc016). Es posible que debas ajustar las coordenadas y los desplazamientos que se usan en las pruebas.
- Se actualizó la inyección de
MotionEventpara mejorar la exactitud (678ca3) y emular mejor los gestos del usuario (454450). - Se mejoró la confiabilidad de los desplazamientos (I7b059), las rotaciones (c6cea0), los clics largos (49572b), los pellizcos (3c619a) y mucho más.
Versión 2.3.0-rc01
7 de febrero de 2024
Se lanzó androidx.test.uiautomator:uiautomator:2.3.0-rc01 sin cambios. La versión 2.3.0-rc01 contiene estas confirmaciones.
Versión 2.3.0-beta01
13 de diciembre de 2023
Lanzamiento de androidx.test.uiautomator:uiautomator:2.3.0-beta01. La versión 2.3.0-beta01 contiene estas confirmaciones.
Cambios en la API
- Se cambió el nombre de los métodos de margen basados en porcentaje a
setGestureMarginPercentageysetGestureMarginsPercentagepara brindar coherencia (I24435).UiObject2
Correcciones de errores
- Se mejoró el error que se arrojaba cuando no se encontraba o no se podía acceder a una pantalla secundaria (116b23).
Versión 2.3.0-alpha05
1 de noviembre de 2023
Lanzamiento de androidx.test.uiautomator:uiautomator:2.3.0-alpha05. La versión 2.3.0-alpha05 contiene estas confirmaciones.
Cambios en la API
- Se agregó
UiObject2#getDrawingOrderpara exponer información sobre el orden de dibujo (índice z). (I5dfa4). - Se agregaron métodos
UiDevicepara obtener, establecer, inmovilizar y desbloquear la rotación de pantallas secundarias. (I912cd).
Correcciones de errores
- Se agregó un reintento a
UiObject2#scrollUntilcuando no se pudo detectar el final del desplazamiento (Ibac6f). - Se solucionó un problema por el que
UiDeviceusaba una instanciaInstrumentationobsoleta si se volvía a crear (I18cae). - Se corrigió un posible NPE si no se puede determinar el ID de la pantalla cuando se vuelcan los nodos (Icafcb).
- Se agregó una advertencia cuando se realizan clics o desplazamientos en objetos que no se pueden hacer clic ni desplazar (I4a5d9).
- Se redujo la velocidad de desplazamiento predeterminada de
UiObject2para mejorar la confiabilidad (I5e071).
Versión 2.3.0-alpha04
26 de julio de 2023
Lanzamiento de androidx.test.uiautomator:uiautomator:2.3.0-alpha04. La versión 2.3.0-alpha04 contiene estas confirmaciones.
Cambios en la API
- Se agregaron
By.hasParentyBy.hasAncestorpara admitir la búsqueda de objetos según sus elementos superiores (I93c36). - Se agregó
UiObject2#getHintpara recuperar el texto de sugerencia de un objeto y métodosBy.hintpara seleccionar objetos según su texto de sugerencia (Idd345). - Se agregó
By.displayIdpara admitir la selección de objetos según la pantalla en la que se encuentran (I1825b). - Se agregaron los métodos
UiDevice#getDisplayHeight(int)yUiDevice#getDisplayWidth(int)para encontrar las dimensiones de una pantalla por su ID (Ie6544). - Se volvieron a agregar los métodos
wait(SearchCondition, long)ywait(UiObject2Condition, long)para la retrocompatibilidad (Iebfda). - Se cambió
UiDevice#executeShellCommanda público, pero se desaconsejó en lugar de ocultarse (Ic48a1).
Correcciones de errores
- Se actualizó la inyección de
MotionEventpara reducir la inestabilidad priorizando la precisión de los gestos por sobre la velocidad (678ca3). - Se agregó el seguimiento a los métodos con muchos recursos para identificar cuellos de botella en el rendimiento (d17de3).
- Se agregó un mecanismo de reintento cuando se inicia una conexión UiAutomation (048caf).
- Se corrigió un posible NPE de nodos nulos en
UiDevice#dumpWindowHierarchy(b725eb). - Se corrigieron errores inesperados de consultas o operaciones en pantallas privadas (985db6, 7053d4).
Versión 2.3.0-alpha03
19 de abril de 2023
Lanzamiento de androidx.test.uiautomator:uiautomator:2.3.0-alpha03. La versión 2.3.0-alpha03 contiene estas confirmaciones.
Cambios en la API
- Se expuso una interfaz
Conditionpara permitir condiciones de espera personalizadas en lugar de depender únicamente de las integradas enUntily se actualizaron los métodosUiDevice#waityUiObject2#waitpara aceptar esta interfaz (27c0ea). - Se agregó
UiObject2#scrollUntilpara admitir el desplazamiento hasta que se cumpla una condición y alcanzar la paridad conUiScrollable(099d6e). - Se agregaron
UiDevice#setOrientationPortraitysetOrientationLandscapepara facilitar las rotaciones en los tipos de dispositivos (e13cb7). - Se agregó
UiObject2#setGestureMarginPercentpara admitir la configuración de márgenes en relación con el tamaño del objeto. (Ib8c77)
Correcciones de errores
- Se corrigieron los métodos
UiScrollableque, en ocasiones, usaban coordenadas no válidas en los SDKs 18 a 22 (b53ece). - Se corrigió
UiObject2#setTextyclearTextque no modificaban el texto en los SDKs 18 y 19 (77e41d). - Se corrigieron los
UiWatcherque no se ejecutaban en el orden correcto (c85f92). - Se solucionó un problema por el que la rotación del dispositivo aún no se completaba después de un cambio de orientación de
UiDevice(c6cea0). - Se mejoró la confiabilidad de los clics largos, los arrastres y los pellizcos (49572b, 3c619a).
Versión 2.3.0-alpha02
11 de enero de 2023
Lanzamiento de androidx.test.uiautomator:uiautomator:2.3.0-alpha02. La versión 2.3.0-alpha02 contiene estas confirmaciones.
Cambios en la API
- Se modificaron los registros de toda la biblioteca para proporcionar más información, advertir sobre posibles problemas y mejorar la coherencia.
- Se agregó
UiDevice#pressKeyCodespara admitir la presión de varias teclas simultáneamente; p. ej., presionar POWER y VOLUME_DOWN para tomar una captura de pantalla (22e525). - Se agregó
UiDevice#setCompressedLayoutHierarchyyUiDevice#setCompressedLayoutHeirarchydejó de estar disponible para corregir un error ortográfico en el nombre del método (4e2f65). - Se marcó
UiAutomatorInstrumentationTestRunnercomo obsoleto, ya que controla objetosUiAutomatorTestCaseobsoletos y ya no es necesario (be6c85). - Se actualizó la demora entre objetos
UiObject2MotionEventy el doble de la frecuencia de actualización de pantalla para emular mejor los gestos del usuario (454450). - Se agregó compatibilidad con la coincidencia de descripciones y texto de varias líneas (1625e6, b/255787130).
Correcciones de errores
- Se corrigieron los objetos
StaleObjectExceptionque a veces se arrojaban mientras se consultaban o se esperaban objetos (4cbcc0). - Se corrigieron los valores de retorno de
UiScrollable#scrollToBeginning,scrollToEnd,flingToBeginningyflingToEnd, que no indicaban si se alcanzó el principio o el final (d33e06). - Se corrigieron los métodos
UiScrollable#scrollForwardyscrollBackwardignorando el tiempo de espera configurado (29e4f3). - Se corrigió el constructor de copias
BySelectorque no controlaba los selectores de profundidad (6c7b91). - Se corrigió el manejo de valores porcentuales no válidos en
UiObject#pinchInypinchOut(01b973). - Se solucionó un problema poco frecuente por el que se perdía la compatibilidad con el modo multiventana si se restablecía la conexión de
UiAutomationsubyacente (1bb956).
Versión 2.3.0-alpha01
7 de septiembre de 2022
Lanzamiento de androidx.test.uiautomator:uiautomator:2.3.0-alpha01. La versión 2.3.0-alpha01 contiene estas confirmaciones.
Cambios en la API
- Se anotó la nulidad de todos los métodos públicos.
- Se cambió la inyección de
MotionEventa asíncrona con un breve retraso para gestos deUiObject2más suaves. - Se redujo el intervalo de sondeo mientras se espera de 1,000 ms a 100 ms.
- Se actualizaron
UiDevice#wakeUpyUiDevice#sleeppara usarKEYCODE_WAKEUPyKEYCODE_SLEEPa fin de admitir dispositivos que anulan el botón de encendido. - Se agregó
UiObject2#getDisplayIdy compatibilidad para encontrar y administrar objetos en varias pantallas. - Se agregaron los métodos
UiObject#clickyUiObject2#clickAndWaitpara hacer clic en un punto con sus coordenadas.
Correcciones de errores
- Se solucionó un problema por el que, en ocasiones, los cálculos del tamaño de la pantalla eran incorrectos y podían ignorar partes de la pantalla, especialmente en el modo multiventana (Ifc016c).
- Se corrigió el escalamiento de capturas de pantalla en
UiDevice#takeScreenshot(Id80ad6). - Se mejoró la confiabilidad de
Until.scrollFinishedyUiObject2#scroll(I7b0595). - Se corrigieron las advertencias de
IncorrectContextUseViolationdel modo estricto (Iffa6a0).