Test Uiautomator
| Ultimo aggiornamento | Release stabile | Candidato per la release | Release beta | Release alpha |
|---|---|---|---|---|
| 1° luglio 2026 | 2.4.0 | - | - | - |
Dichiara le dipendenze
Per aggiungere una dipendenza da test, devi aggiungere il repository Maven di Google al tuo progetto. Per saperne di più, consulta il repository Maven di Google.
Aggiungi le dipendenze per gli artefatti necessari nel file build.gradle per
la tua app o il tuo modulo:
Alla moda
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") }
Per saperne di più sulle dipendenze, consulta Aggiungere dipendenze di build.
Feedback
Il tuo feedback ci aiuta a migliorare Jetpack. Facci sapere se riscontri nuovi problemi o hai idee per migliorare questa raccolta. Prima di segnalare un nuovo problema, dai un'occhiata ai problemi esistenti in questa raccolta. Puoi aggiungere il tuo voto a un problema esistente facendo clic sul pulsante a forma di stella.
Per saperne di più, consulta la documentazione di Issue Tracker.
Test Uiautomator Shell versione 1.0
Versione 1.0.0-alpha03
3 dicembre 2025
androidx.test.uiautomator:uiautomator-shell:1.0.0-alpha03 è stato rilasciato. La versione 1.0.0-alpha03 contiene questi commit.
Modifiche alle API
- Modificato l'attesa di
startActivityper attendere una nuova finestra (I35da6, b/440021797) - Aggiornato
screenSizePixelinRecorderCommands(If558c, b/429173157)
Versione 1.0.0-alpha02
13 agosto 2025
androidx.test.uiautomator:uiautomator-shell:1.0.0-alpha02 è stato rilasciato. La versione 1.0.0-alpha02 contiene questi commit.
Versione 1.0.0-alpha01
18 giugno 2025
androidx.test.uiautomator:uiautomator-shell:1.0.0-alpha01 è stato rilasciato. La versione 1.0.0-alpha01 contiene questi commit.
Nuove funzionalità
- Prima versione alpha della raccolta shell ui-automator per eseguire i comandi della shell come utente della shell. Questa raccolta consente di leggere stdout, stderr e scrivere in stdin di un processo sh avviato dalla shell. Di fatto, esegue il backport di
UiAutomation#executeShellCommandRweintrodotto nell'API 34.
Versione 2.4
Versione 2.4.0
1° luglio 2026
androidx.test.uiautomator:uiautomator:2.4.0, androidx.test.uiautomator:uiautomator-shell:2.4.0 e androidx.test.uiautomator:uiautomator-shell-android:2.4.0 sono stati rilasciati. La versione 2.4.0 contiene questi commit.
Modifiche importanti dalla versione 2.3.0:
Versione 2.4.0-rc01
17 giugno 2026
androidx.test.uiautomator:uiautomator:2.4.0-rc01, androidx.test.uiautomator:uiautomator-shell:2.4.0-rc01 e androidx.test.uiautomator:uiautomator-shell-android:2.4.0-rc01 sono stati rilasciati. La versione 2.4.0-rc01 contiene questi commit.
Versione 2.4.0-beta02
11 marzo 2026
androidx.test.uiautomator:uiautomator:2.4.0-beta02 e androidx.test.uiautomator:uiautomator-shell:2.4.0-beta02 sono stati rilasciati. La versione 2.4.0-beta02 contiene questi commit.
Correzioni di bug
- È stato corretto il problema per cui
UiObject2#scrollToElementOrNullgenerava un'eccezione anziché restituirenulled è stato aggiornato il tipo restituito (If0109, b/479892735)
Versione 2.4.0-beta01
11 febbraio 2026
androidx.test.uiautomator:uiautomator:2.4.0-beta01 e androidx.test.uiautomator:uiautomator-shell:2.4.0-beta01 sono stati rilasciati. La versione 2.4.0-beta01 contiene questi commit.
Modifiche alle API
- Rendi i comandi senza stato singleton. (I3394c, b/429173157)
- Aggiorna l'API
RecorderCommands. (Ie09e8, b/429173157) - Semplifica l'API
RecorderCommandsper avere un ciclo di vita ben definito. (I30f89, b/444305673)
Versione 2.4.0-alpha07
3 dicembre 2025
androidx.test.uiautomator:uiautomator:2.4.0-alpha07 è stato rilasciato. La versione 2.4.0-alpha07 contiene questi commit.
Modifiche alle API
- Modificato l'attesa di
startActivityper attendere una nuova finestra. In questo modo, l'avvio è generalmente sincrono e le versioni future di Macrobenchmark potranno configurare il rilevamento del completamento dell'avvio. (I35da6, Id6e6f, b/440021797) - Rimossa l'API senza nome del pacchetto esplicito in
UiAutomatorTestScope. (I8c285, b/413417205)
Versione 2.4.0-alpha06
13 agosto 2025
androidx.test.uiautomator:uiautomator:2.4.0-alpha06 è stato rilasciato. La versione 2.4.0-alpha06 contiene questi commit.
Nuove funzionalità
- Aggiunte API basate su finestre per migliorare i test multi-finestra, ad es. ora è possibile utilizzare
UiDevice#findWindowper trovare unaUiWindowspecifica in base a unByWindowSelectorcreato con i metodi factoryBy.Window. (I359c4, I40528, I8c963)
Versione 2.4.0-alpha05
18 giugno 2025
androidx.test.uiautomator:uiautomator:2.4.0-alpha05 è stato rilasciato. La versione 2.4.0-alpha05 contiene questi commit.
Modifiche alle API
- Aggiunto
UiObject2#waitForStablecome scorciatoia perUiObject2#accessibilityNodeInfo#waitForStable()
Versione 2.4.0-alpha04
4 giugno 2025
androidx.test.uiautomator:uiautomator:2.4.0-alpha04 è stato rilasciato. La versione 2.4.0-alpha04 contiene questi commit.
Modifiche alle API
- Rinominato
onViewinonElementper chiarire che funziona con Compose (I53a3b, b/419006806)
Correzioni di bug
- Corretto
waitForStableInActiveWindow(290457f1, b/420349130)
Versione 2.4.0-alpha03
20 maggio 2025
androidx.test.uiautomator:uiautomator:2.4.0-alpha03 è stato rilasciato. La versione 2.4.0-alpha03 contiene questi commit.
Correzioni di bug
- È stato corretto il problema per cui
waitForStableInActiveWindowgenerava un'eccezione NPE in alcuni casi (Ibf50f, b/417046391)
Versione 2.4.0-alpha02
7 maggio 2025
androidx.test.uiautomator:uiautomator:2.4.0-alpha02 è stato rilasciato. La versione 2.4.0-alpha02 contiene questi commit.
Nuove funzionalità
- Forma iniziale della nuova API
Uiautomator. È possibile creareUiAutomatorTestScopetramite la factoryuiAutomatorche fornisce l'accesso alle nuove APIonView. - Regole Lint iniziali per avvisare dell'utilizzo di
AccessibilityNodeInfo#getTexte suggerire l'utilizzo ditextAsString.
Modifiche alle API
- Aggiunto
Configurator#setDefaultDisplayIdper impostare un ID display a cui limitare tutte le ricerche (Icdf17). - Modificato
Searchable(interfaccia condivisa daUiDeviceeUiObject2) in pubblico per comodità (I67f18).
Correzioni di bug
- È stata corretta la gestione dei tasti meta in
UiDevice#pressKeyCodes. (I73f80). - Aggiornato
UiDevice#getWindowRootsper restituire sempre le radici in ordine Z (I87426). - È stato risolto il problema per cui alcuni gesti erano incompleti (I60dd3, If4edd).
- È stato corretto un raro loop infinito durante la chiamata di
UiDevice#scrollUntil(I39989).
Versione 2.4.0-alpha01
26 giugno 2024
androidx.test.uiautomator:uiautomator:2.4.0-alpha01 è stato rilasciato. La versione 2.4.0-alpha01 contiene questi commit.
Modifiche alle API
- È stato ritirato
Configurator#getKeyInjectionDelayesetKeyInjectionDelayperché il parametro non viene più utilizzato ora che il testo viene sempre inserito direttamente anziché tramite la pressione dei tasti. (I3bcc5).
Correzioni di bug
- È stato aggiornato il ritardo tra gli eventi di movimento
UiObject2per tenere conto delle frequenze di aggiornamento dinamiche (ad es. Smooth Display) (I43f12). - È stata ridotta l'instabilità dovuta all'obsolescenza dei nodi di accessibilità su alcune interfacce utente invalidando periodicamente la cache di accessibilità (I3be25).
- Sono state corrette le eccezioni
StaleObjectExceptionche si verificavano durante la chiamata ditoStringohashCodesu unUiObject2obsoleto. (I38ea1). - È stato migliorato il rendimento di
UiWatchersaltando le chiamatewaitForIdlenon necessarie. (I8c65e). - Sono state corrette le imprecisioni di Javadoc, in particolare per chiarire quando viene utilizzato ogni parametro
Configurator. (Ie10b1, I71631).
Versione 2.3.0
Versione 2.3.0
21 febbraio 2024
androidx.test.uiautomator:uiautomator:2.3.0 è stato rilasciato. La versione 2.3.0 contiene questi commit.
Modifiche importanti dalla versione 2.2.0
- Supporto di più display: è stato aggiunto il supporto per la ricerca e l'utilizzo di oggetti su più display e i metodi
UiDeviceper gestire i display secondari (Ie6544, I912cd). - Nuovi selettori:
- È stato aggiunto
By.displayIdper selezionare gli oggetti in base al loro ID display (I1825b). - Sono stati aggiunti
By.hasParenteBy.hasAncestorper selezionare gli oggetti in base ai loro genitori (I93c36). - Sono stati aggiunti i metodi
By.hintper selezionare gli oggetti in base al testo del suggerimento (Idd345).
- È stato aggiunto
- Condizioni personalizzate: è stata esposta un'interfaccia
Conditionper supportare le condizioni di attesa personalizzate e sono stati aggiunti i metodiUiDevice#wait,UiObject2#waiteUiObject2#scrollUntilcorrispondenti (27c0ea, 099d6e). - Correzioni di bug e affidabilità
- È stato corretto un problema per cui i calcoli delle dimensioni del display erano occasionalmente errati e potevano ignorare parti dello schermo (Ifc016). Potrebbe essere necessario modificare le coordinate e gli offset utilizzati nei test.
- È stato aggiornato l'inserimento di
MotionEventper migliorare la precisione (678ca3) ed emulare meglio i gesti dell'utente (454450). - È stata migliorata l'affidabilità di scorrimenti (I7b059), rotazioni (c6cea0), clic lunghi (49572b), pizzicotti (3c619a) e altro ancora.
Versione 2.3.0-rc01
7 febbraio 2024
androidx.test.uiautomator:uiautomator:2.3.0-rc01 è stato rilasciato senza modifiche. La versione 2.3.0-rc01 contiene questi commit.
Versione 2.3.0-beta01
13 dicembre 2023
androidx.test.uiautomator:uiautomator:2.3.0-beta01 è stato rilasciato. La versione 2.3.0-beta01 contiene questi commit.
Modifiche alle API
- Sono stati rinominati i metodi di margine basati sulla percentuale
UiObject2insetGestureMarginPercentageesetGestureMarginsPercentageper coerenza (I24435)
Correzioni di bug
- È stato migliorato l'errore generato quando non viene trovato o non è accessibile un display secondario (116b23)
Versione 2.3.0-alpha05
1° novembre 2023
androidx.test.uiautomator:uiautomator:2.3.0-alpha05 è stato rilasciato. La versione 2.3.0-alpha05 contiene questi commit.
Modifiche alle API
- È stato aggiunto
UiObject2#getDrawingOrderper esporre le informazioni sull'ordine di disegno (indice z). (I5dfa4). - Sono stati aggiunti i metodi
UiDeviceper ottenere, impostare, bloccare e sbloccare la rotazione dei display secondari. (I912cd).
Correzioni di bug
- È stato aggiunto un nuovo tentativo a
UiObject2#scrollUntilquando non è stato possibile rilevare la fine dello scorrimento (Ibac6f). - È stato corretto il problema per cui
UiDeviceutilizzava un'istanzaInstrumentationobsoleta se veniva ricreata (I18cae). - È stata corretta una possibile eccezione NPE se non è possibile determinare l'ID display durante il dump dei nodi (Icafcb).
- È stato aggiunto un avviso quando si eseguono clic/scorrimenti su oggetti non cliccabili/scorribili (I4a5d9).
- È stata ridotta la velocità di scorrimento predefinita di
UiObject2per migliorare l'affidabilità (I5e071).
Versione 2.3.0-alpha04
26 luglio 2023
androidx.test.uiautomator:uiautomator:2.3.0-alpha04 è stato rilasciato. La versione 2.3.0-alpha04 contiene questi commit.
Modifiche alle API
- Sono stati aggiunti
By.hasParenteBy.hasAncestorper supportare la ricerca di oggetti in base ai loro genitori (I93c36). - È stato aggiunto
UiObject2#getHintper recuperare il testo del suggerimento di un oggetto e i metodiBy.hintper selezionare gli oggetti in base al testo del suggerimento (Idd345). - È stato aggiunto
By.displayIdper supportare la selezione degli oggetti in base al display su cui si trovano (I1825b). - Sono stati aggiunti i metodi
UiDevice#getDisplayHeight(int)eUiDevice#getDisplayWidth(int)per trovare le dimensioni di un display in base al suo ID (Ie6544). - Sono stati aggiunti di nuovo i metodi
wait(SearchCondition, long)ewait(UiObject2Condition, long)per la compatibilità con le versioni precedenti (Iebfda). - È stato modificato
UiDevice#executeShellCommandin pubblico, ma è stato sconsigliato anziché nascosto (Ic48a1).
Correzioni di bug
- È stato aggiornato l'inserimento di
MotionEventper ridurre l'instabilità dando la priorità alla precisione dei gesti rispetto alla velocità (678ca3). - È stato aggiunto il tracciamento ai metodi che richiedono molte risorse per identificare i colli di bottiglia delle prestazioni (d17de3).
- È stato aggiunto un meccanismo di nuovi tentativi durante l'avvio di una connessione UiAutomation (048caf).
- È stata corretta una possibile eccezione NPE dai nodi null in
UiDevice#dumpWindowHierarchy(b725eb). - Sono stati corretti gli errori imprevisti durante l'esecuzione di query o operazioni su display privati (985db6, 7053d4).
Versione 2.3.0-alpha03
19 aprile 2023
androidx.test.uiautomator:uiautomator:2.3.0-alpha03 è stato rilasciato. La versione 2.3.0-alpha03 contiene questi commit.
Modifiche alle API
- È stata esposta un'interfaccia
Conditionper consentire condizioni di attesa personalizzate anziché affidarsi esclusivamente a quelle integrate inUntile sono stati aggiornati i metodiUiDevice#waiteUiObject2#waitper accettare questa interfaccia (27c0ea). - È stato aggiunto
UiObject2#scrollUntilper supportare lo scorrimento fino a quando non viene soddisfatta una condizione e per raggiungere la parità conUiScrollable(099d6e). - Sono stati aggiunti
UiDevice#setOrientationPortraitesetOrientationLandscapeper facilitare le rotazioni tra i tipi di dispositivi (e13cb7). - È stato aggiunto
UiObject2#setGestureMarginPercentper supportare l'impostazione dei margini rispetto alle dimensioni dell'oggetto. (Ib8c77)
Correzioni di bug
- È stato corretto il problema per cui i metodi
UiScrollableutilizzavano occasionalmente coordinate non valide sugli SDK da 18 a 22 (b53ece). - È stato corretto il problema per cui
UiObject2#setTexteclearTextnon riuscivano a modificare il testo sugli SDK 18 e 19 (77e41d). - È stato corretto il problema per cui
UiWatchernon veniva eseguito nell'ordine corretto (c85f92). - È stato corretto il problema per cui la rotazione del dispositivo potrebbe non essere ancora completata dopo una modifica dell'orientamento di
UiDevice(c6cea0). - È stata migliorata l'affidabilità di clic lunghi, trascinamenti e pizzicotti (49572b, 3c619a).
Versione 2.3.0-alpha02
11 gennaio 2023
androidx.test.uiautomator:uiautomator:2.3.0-alpha02 è stato rilasciato. La versione 2.3.0-alpha02 contiene questi commit.
Modifiche alle API
- È stato rielaborato il logging in tutta la raccolta per fornire maggiori informazioni, avvisare di possibili problemi e migliorare la coerenza.
- È stato aggiunto
UiDevice#pressKeyCodesper supportare la pressione simultanea di più tasti, ad es. premere POWER e VOLUME_DOWN per fare uno screenshot (22e525). - Sono stati aggiunti
UiDevice#setCompressedLayoutHierarchyeUiDevice#setCompressedLayoutHeirarchyè stato ritirato per correggere un errore di battitura nel nome del metodo (4e2f65). - È stato contrassegnato
UiAutomatorInstrumentationTestRunnercome ritirato perché gestisceUiAutomatorTestCaseritirati e non è più necessario (be6c85). - È stato aggiornato il ritardo tra
UiObject2MotionEvental doppio della frequenza di aggiornamento del display per emulare meglio i gesti dell'utente (454450). - È stato aggiunto il supporto per la corrispondenza di testo e descrizione multiriga (1625e6, b/255787130).
Correzioni di bug
- È stato corretto il problema per cui occasionalmente venivano generate eccezioni
StaleObjectExceptiondurante l'esecuzione di query o l'attesa di oggetti (4cbcc0). - Sono stati corretti i valori restituiti di
UiScrollable#scrollToBeginning,scrollToEnd,flingToBeginningeflingToEndche non indicavano se era stato raggiunto l'inizio/la fine (d33e06). - È stato corretto il problema per cui i metodi
UiScrollable#scrollForwardescrollBackwardignoravano il timeout configurato (29e4f3). - È stato corretto il problema per cui il costruttore di copia
BySelectornon gestiva i selettori di profondità (6c7b91). - È stata corretta la gestione dei valori percentuali non validi in
UiObject#pinchInepinchOut(01b973). - È stato corretto un raro problema per cui il supporto multi-finestra veniva perso se la connessione
UiAutomationsottostante veniva reimpostata (1bb956).
Versione 2.3.0-alpha01
7 settembre 2022
androidx.test.uiautomator:uiautomator:2.3.0-alpha01 è stato rilasciato. La versione 2.3.0-alpha01 contiene questi commit.
Modifiche alle API
- È stata annotata la nullità di tutti i metodi pubblici.
- È stato modificato l'inserimento di
MotionEventin asincrono con un breve ritardo per gestiUiObject2più fluidi. - L'intervallo di polling durante l'attesa è stato ridotto da 1000 ms a 100 ms.
- Sono stati aggiornati
UiDevice#wakeUpeUiDevice#sleepper utilizzareKEYCODE_WAKEUPeKEYCODE_SLEEPper supportare i dispositivi che eseguono l'override del tasto di accensione. - È stato aggiunto
UiObject2#getDisplayIde il supporto per la ricerca e la gestione di oggetti su più display. - Sono stati aggiunti i metodi
UiObject#clickeUiObject2#clickAndWaitper fare clic su un punto utilizzando le relative coordinate.
Correzioni di bug
- È stato corretto un problema per cui i calcoli delle dimensioni del display erano occasionalmente errati e potevano ignorare parti dello schermo, in particolare in modalità multi-finestra (Ifc016c).
- È stata corretta la scalabilità degli screenshot in
UiDevice#takeScreenshot(Id80ad6). - È stata migliorata l'affidabilità di
Until.scrollFinishedeUiObject2#scroll(I7b0595). - Sono stati corretti gli avvisi di modalità rigorosa
IncorrectContextUseViolation(Iffa6a0).