Testare Uiautomator

  
Framework per il test funzionale dell'interfaccia utente tra app
Ultimo aggiornamento Release stabile Candidato per la release Release beta Release alpha
11 febbraio 2026 2.3.0 - 2.4.0-beta01 -

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-beta01"
}

Kotlin

dependencies {
    // Use to implement UIAutomator tests
    androidTestImplementation("androidx.test.uiautomator:uiautomator:2.4.0-beta01")
}

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.

Crea un nuovo problema

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

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 libreria della shell ui-automator per eseguire comandi della shell come utente della shell. Questa libreria consente di leggere stdout, stderr e scrivere in stdin di un processo sh avviato da shell. Di fatto, esegue il backporting di UiAutomation#executeShellCommandRwe introdotto nell'API 34.

Versione 2.4

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 state rilasciate. La versione 2.4.0-beta01 contiene questi commit.

Modifiche alle API

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 startActivity wait to wait for new window. 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)
  • È stata rimossa l'API senza nome 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à

  • Sono state aggiunte API basate su finestre per migliorare i test multi-finestra, ad esempio ora è possibile utilizzare UiDevice#findWindow per trovare un UiWindow specifico in base a un ByWindowSelector creato con i metodi di fabbrica By.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

  • Aggiunta di UiObject2#waitForStable come scorciatoia per UiObject2#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

  • È stato rinominato onView in onElement per chiarire che funziona con Compose (I53a3b, b/419006806)

Correzioni di bug

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 waitForStableInActiveWindow che generava 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. UiAutomatorTestScope può essere creato tramite la fabbrica uiAutomator che dà accesso alle nuove API onView.
  • Regole Lint iniziali per l'avviso relativo all'utilizzo di AccessibilityNodeInfo#getText e suggerimento di utilizzo di textAsString.

Modifiche alle API

  • È stato aggiunto Configurator#setDefaultDisplayId per impostare un ID display per limitare tutte le ricerche a (Icdf17).
  • Modificato Searchable (interfaccia condivisa da UiDevice e UiObject2) in pubblico per comodità (I67f18).

Correzioni di bug

  • È stata corretta la gestione dei tasti Meta in UiDevice#pressKeyCodes. (I73f80).
  • UiDevice#getWindowRoots è stato aggiornato per restituire sempre le radici in ordine Z (I87426).
  • È stato risolto il problema per cui alcuni gesti erano incompleti (I60dd3, If4edd).
  • È stato corretto un raro ciclo 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

  • Sono stati ritirati Configurator#getKeyInjectionDelay e setKeyInjectionDelay perché 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 di UiObject2 per tenere conto delle frequenze di aggiornamento dinamiche (ad es. Display fluido) (I43f12).
  • Riduzione dell'instabilità dovuta all'obsolescenza dei nodi di accessibilità in alcune UI mediante l'invalidazione periodica della cache di accessibilità (I3be25).
  • Risolto il problema relativo agli StaleObjectException che si verificano durante le chiamate a toString o hashCode su un UiObject2 obsoleto. (I38ea1).
  • Miglioramento delle prestazioni di UiWatcher saltando le chiamate waitForIdle non necessarie. (I8c65e).
  • Sono state corrette le imprecisioni di Javadoc, in particolare per chiarire quando viene utilizzato ciascun 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 multi-display: è stato aggiunto il supporto per trovare e utilizzare oggetti su più display e metodi UiDevice per gestire i display secondari (Ie6544, I912cd).
  • Nuovi selettori:
    • È stato aggiunto By.displayId per selezionare gli oggetti in base al loro ID visualizzazione (I1825b).
    • Sono stati aggiunti By.hasParent e By.hasAncestor per selezionare gli oggetti in base ai relativi genitori (I93c36).
    • Sono stati aggiunti By.hint metodi per selezionare gli oggetti in base al testo del suggerimento (Idd345).
  • Condizioni personalizzate: è stata esposta un'interfaccia Condition per supportare le condizioni di attesa personalizzate e sono stati aggiunti i metodi UiDevice#wait, UiObject2#wait e UiObject2#scrollUntil corrispondenti (27c0ea, 099d6e).
  • Correzioni di bug e affidabilità
    • È stato risolto un problema a causa del quale i calcoli delle dimensioni del display erano a volte errati e potevano ignorare parti dello schermo (Ifc016). Le coordinate e gli offset utilizzati nei test potrebbero dover essere modificati.
    • È stata aggiornata l'iniezione di MotionEvent per migliorare la precisione (678ca3) ed emulare meglio i gesti dell'utente (454450).
    • È stata migliorata l'affidabilità di scorrimenti (I7b059), rotazioni (c6cea0), clic lunghi (49572b), pizzichi (3c619a) e altro ancora.

Versione 2.3.0-rc01

7 febbraio 2024

androidx.test.uiautomator:uiautomator:2.3.0-rc01 viene 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

  • Rinominati i metodi di margine basati sulla percentuale UiObject2 in setGestureMarginPercentage e setGestureMarginsPercentage per coerenza (I24435)

Correzioni di bug

  • È stato migliorato l'errore generato quando un display secondario non viene trovato o non è accessibile (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#getDrawingOrder per esporre le informazioni sull'ordine di disegno (z-index). (I5dfa4).
  • Sono stati aggiunti metodi UiDevice per ottenere, impostare, bloccare e sbloccare la rotazione dei display secondari. (I912cd).

Correzioni di bug

  • È stato aggiunto un nuovo tentativo a UiObject2#scrollUntil quando non è stato possibile rilevare la fine dello scorrimento (Ibac6f).
  • È stato risolto il problema per cui UiDevice utilizzava un'istanza Instrumentation obsoleta se veniva ricreata (I18cae).
  • È stato risolto un possibile 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 UiObject2 per 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.hasParent e By.hasAncestor per supportare la ricerca di oggetti in base ai relativi elementi principali (I93c36).
  • Sono stati aggiunti UiObject2#getHint per recuperare il testo del suggerimento di un oggetto e i metodi By.hint per selezionare gli oggetti in base al testo del suggerimento (Idd345).
  • È stato aggiunto By.displayId per supportare la selezione degli oggetti in base al display su cui si trovano (I1825b).
  • Sono stati aggiunti i metodi UiDevice#getDisplayHeight(int) e UiDevice#getDisplayWidth(int) per trovare le dimensioni di un display in base al relativo ID (Ie6544).
  • Sono stati aggiunti di nuovo i metodi wait(SearchCondition, long) e wait(UiObject2Condition, long) per la compatibilità con le versioni precedenti (Iebfda).
  • UiDevice#executeShellCommand è stato impostato come pubblico, ma sconsigliato anziché nascosto (Ic48a1).

Correzioni di bug

  • È stata aggiornata l'iniezione di MotionEvent per ridurre l'instabilità dando la priorità alla precisione dei gesti rispetto alla velocità (678ca3).
  • È stata aggiunta la tracciatura ai metodi che richiedono molte risorse per identificare i colli di bottiglia delle prestazioni (d17de3).
  • È stato aggiunto un meccanismo di riprova quando si avvia una connessione UiAutomation (048caf).
  • È stato corretto un possibile NPE dai nodi nulli in UiDevice#dumpWindowHierarchy (b725eb).
  • Sono stati corretti 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 Condition per consentire condizioni di attesa personalizzate anziché basarsi esclusivamente su quelle integrate in Until. Sono stati aggiornati i metodi UiDevice#wait e UiObject2#wait per accettare questa interfaccia (27c0ea).
  • È stato aggiunto UiObject2#scrollUntil per supportare lo scorrimento fino a quando non viene soddisfatta una condizione e per raggiungere la parità con UiScrollable (099d6e).
  • Sono stati aggiunti UiDevice#setOrientationPortrait e setOrientationLandscape per facilitare le rotazioni tra i tipi di dispositivi (e13cb7).
  • È stato aggiunto UiObject2#setGestureMarginPercent per supportare l'impostazione dei margini rispetto alle dimensioni dell'oggetto. (Ib8c77)

Correzioni di bug

  • È stato corretto un problema per cui i metodi UiScrollable utilizzavano occasionalmente coordinate non valide negli SDK da 18 a 22 (b53ece).
  • È stato corretto l'errore relativo all'impossibilità di modificare il testo su SDK 18 e 19 (77e41d) per UiObject2#setText e clearText.
  • È stato risolto il problema relativo all'esecuzione degli UiWatcher nell'ordine corretto (c85f92).
  • È stato risolto il problema per cui la rotazione del dispositivo potrebbe non essere ancora completata dopo una modifica dell'orientamento UiDevice (c6cea0).
  • Maggiore affidabilità di clic lunghi, trascinamenti e pizzichi (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

  • Registrazione rielaborata in tutta la libreria per fornire maggiori informazioni, avvisare di possibili problemi e migliorare la coerenza.
  • Aggiunta UiDevice#pressKeyCodes per supportare la pressione simultanea di più tasti, ad esempio la pressione di POWER e VOLUME_DOWN per fare uno screenshot (22e525).
  • Aggiunti UiDevice#setCompressedLayoutHierarchy e ritirati UiDevice#setCompressedLayoutHeirarchy per correggere un errore di battitura nel nome del metodo (4e2f65).
  • UiAutomatorInstrumentationTestRunner è stato contrassegnato come deprecato perché gestisce UiAutomatorTestCase deprecati e non è più necessario (be6c85).
  • È stato aggiornato il ritardo tra i UiObject2 MotionEvents al 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 su più righe (1625e6, b/255787130).

Correzioni di bug

  • È stato risolto il problema per cui a volte venivano generati StaleObjectException durante l'esecuzione di query o l'attesa di oggetti (4cbcc0).
  • Sono stati corretti i valori restituiti di UiScrollable#scrollToBeginning, scrollToEnd, flingToBeginning e flingToEnd che non indicano se è stato raggiunto l'inizio o la fine (d33e06).
  • Sono stati corretti i metodi UiScrollable#scrollForward e scrollBackward che ignoravano il timeout configurato (29e4f3).
  • È stato corretto il costruttore di copia BySelector che non gestisce i selettori di profondità (6c7b91).
  • È stato corretto il trattamento dei valori percentuali non validi in UiObject#pinchIn e pinchOut (01b973).
  • Risolto un problema raro per cui il supporto multi-finestra veniva perso se la connessione UiAutomation sottostante 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 l'annullabilità di tutti i metodi pubblici.
  • L'inserimento di MotionEvent è stato reso asincrono con un breve ritardo per gesti UiObject2 più fluidi.
  • Ridotto l'intervallo di polling durante l'attesa da 1000 ms a 100 ms.
  • UiDevice#wakeUp e UiDevice#sleep sono stati aggiornati per utilizzare KEYCODE_WAKEUP e KEYCODE_SLEEP per supportare i dispositivi che ignorano il tasto di accensione.
  • È stato aggiunto UiObject2#getDisplayId e il supporto per trovare e gestire oggetti su più display.
  • Sono stati aggiunti i metodi UiObject#click e UiObject2#clickAndWait per fare clic su un punto utilizzando le relative coordinate.

Correzioni di bug

  • È stato risolto un problema per cui i calcoli delle dimensioni del display erano occasionalmente errati e potevano ignorare parti dello schermo, soprattutto in modalità multi-finestra (Ifc016c).
  • È stata corretta la scalabilità degli screenshot in UiDevice#takeScreenshot (Id80ad6).
  • È stata migliorata l'affidabilità di Until.scrollFinished e UiObject2#scroll (I7b0595).
  • Sono stati corretti gli avvisi della modalità rigorosa IncorrectContextUseViolation (Iffa6a0).