Test Uiautomator
| Actualización más reciente | Versión estable | Versión potencial | Versión beta | Versión alfa |
|---|---|---|---|---|
| 1 de julio de 2026 | 2.4.0 | - | - | - |
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" }
Kotlin
dependencies { // Use to implement UIAutomator tests androidTestImplementation("androidx.test.uiautomator:uiautomator:2.4.0") }
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 la 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 stdin de un proceso sh iniciado por shell. De facto, realiza un backport de
UiAutomation#executeShellCommandRwe, que se introdujo en la API 34.
Versión 2.4
Versión 2.4.0
1 de julio de 2026
Lanzamiento de androidx.test.uiautomator:uiautomator:2.4.0, androidx.test.uiautomator:uiautomator-shell:2.4.0 y androidx.test.uiautomator:uiautomator-shell-android:2.4.0. La versión 2.4.0 contiene estas confirmaciones.
Cambios importantes desde la versión 2.3.0:
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#scrollToElementOrNullpara que arroje una excepción en lugar de devolvernull, y se actualizó su tipo de devolución (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
- Haz que los comandos sin estado sean singleton. (I3394c, b/429173157)
- Actualiza la API de
RecorderCommands. (Ie09e8, b/429173157) - Simplificar la API de
RecorderCommandspara que tenga 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ó
startActivitywait para esperar la 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 un 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 de varias ventanas, 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 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ó un error por el que
waitForStableInActiveWindowlanzaba una 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.UiAutomatorTestScopese puede crear a través de la fábricauiAutomatorque brinda 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 que restrinja todas las búsquedas (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 devuelva 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 común que se producía 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 dieron de baja
Configurator#getKeyInjectionDelayysetKeyInjectionDelay, ya que el parámetro no se usa ahora que el texto siempre se inyecta directamente en lugar de con pulsaciones de teclas. (I3bcc5).
Correcciones de errores
- Se actualizó la demora entre los eventos de movimiento de
UiObject2para tener en cuenta las frecuencias de actualización dinámicas (es decir, Smooth Display) (I43f12). - Se redujo la inestabilidad debido a la obsolescencia de los nodos de accesibilidad en ciertas IU invalidando periódicamente la caché de accesibilidad (I3be25).
- Se corrigieron los
StaleObjectExceptionque ocurrían cuando se llamaba atoStringohashCodeen unUiObject2obsoleto. (I38ea1). - Se mejoró el rendimiento de
UiWatcheromitiendo llamadaswaitForIdleinnecesarias. (I8c65e). - Se corrigieron imprecisiones en Javadoc, especialmente 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 pantallas múltiples: Se agregó compatibilidad para encontrar y operar objetos en varias pantallas, y métodos
UiDevicepara 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). - Corrección 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 deban ajustarse las coordenadas y los desplazamientos que se usan en las pruebas.
- Se actualizó la inyección de
MotionEventpara mejorar la precisión (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
UiObject2asetGestureMarginPercentageysetGestureMarginsPercentagepara brindar coherencia (I24435).
Correcciones de errores
- Se mejoró el error que se arroja cuando no se encuentra o no se puede 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 la información del orden de dibujo (índice Z). (I5dfa4). - Se agregaron métodos
UiDevicepara obtener, establecer, inmovilizar y desinmovilizar 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ó el problema por el que
UiDeviceusaba una instancia obsoleta deInstrumentationsi se volvía a crear (I18cae). - Se corrigió un posible NPE si no se puede determinar el ID de pantalla cuando se vuelcan nodos (Icafcb).
- Se agregó una advertencia cuando se realizan clics o desplazamientos en objetos que no son aptos para clics o desplazamientos (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 los 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 brindar retrocompatibilidad (Iebfda). - Se cambió
UiDevice#executeShellCommanda público, pero se desaconseja su uso en lugar de ocultarlo (Ic48a1).
Correcciones de errores
- Se actualizó la inyección de
MotionEventpara reducir la inestabilidad priorizando la precisión del gesto por sobre la velocidad (678ca3). - Se agregó el seguimiento a los métodos con uso intensivo de recursos para identificar cuellos de botella en el rendimiento (d17de3).
- Se agregó un mecanismo de reintento cuando se inicia una conexión de UiAutomation (048caf).
- Se corrigió una posible NPE de nodos nulos en
UiDevice#dumpWindowHierarchy(b725eb). - Se corrigieron errores inesperados que se producían al consultar pantallas privadas o realizar operaciones en ellas (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 enUntil, y 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 todos los tipos de dispositivos (e13cb7). - Se agregó
UiObject2#setGestureMarginPercentpara admitir el establecimiento de márgenes relativos al tamaño del objeto. (Ib8c77)
Correcciones de errores
- Se corrigió el problema por el que los métodos
UiScrollablea veces usaban coordenadas no válidas en los SDKs del 18 al 22 (b53ece). - Se corrigió el error de
UiObject2#setTextyclearTextque impedía modificar el texto en los SDKs 18 y 19 (77e41d). - Se corrigió el problema por el que los
UiWatcherno se ejecutaban en el orden correcto (c85f92). - Se corrigió un problema por el que la rotación del dispositivo podría no completarse 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).