Testare Uiautomator
Ultimo aggiornamento | Release stabile | Candidato per la release | Release beta | Release alpha |
---|---|---|---|---|
13 agosto 2025 | 2.3.0 | - | - | 2.4.0-alpha06 |
Dichiarazione di dipendenze
Per aggiungere una dipendenza al 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 che ti servono 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-alpha06" }
Kotlin
dependencies { // Use to implement UIAutomator tests androidTestImplementation("androidx.test.uiautomator:uiautomator:2.4.0-alpha06") }
Per saperne di più sulle dipendenze, consulta Aggiungi dipendenze di build.
Feedback
Il tuo feedback ci aiuta a migliorare Jetpack. Facci sapere se riscontri nuovi problemi o hai idee per migliorare questa libreria. Prima di crearne uno nuovo, dai un'occhiata ai problemi esistenti in questa libreria. Puoi aggiungere il tuo voto a un problema esistente facendo clic sul pulsante a forma di stella.
Per ulteriori informazioni, consulta la documentazione di Issue Tracker.
Test Uiautomator Shell versione 1.0
Versione 1.0.0-alpha02
13 agosto 2025
androidx.test.uiautomator:uiautomator-shell:1.0.0-alpha02
viene rilasciata. 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
viene rilasciata. 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 dalla shell. Di fatto, esegue il backporting di
UiAutomation#executeShellCommandRwe
introdotto nell'API 34.
Versione 2.4
Versione 2.4.0-alpha06
13 agosto 2025
androidx.test.uiautomator:uiautomator:2.4.0-alpha06
viene rilasciata. 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 unUiWindow
specifico in base a unByWindowSelector
creato con i metodi di fabbricaBy.Window
. (I359c4, I40528, I8c963)
Versione 2.4.0-alpha05
18 giugno 2025
androidx.test.uiautomator:uiautomator:2.4.0-alpha05
viene rilasciata. La versione 2.4.0-alpha05 contiene questi commit.
Modifiche alle API
UiObject2#waitForStable
aggiunto come scorciatoia perUiObject2#accessibilityNodeInfo#waitForStable()
Versione 2.4.0-alpha04
4 giugno 2025
androidx.test.uiautomator:uiautomator:2.4.0-alpha04
viene rilasciata. La versione 2.4.0-alpha04 contiene questi commit.
Modifiche alle API
- Rinomina
onView
inonElement
per chiarire che funziona con la composizione (I53a3b, b/419006806)
Correzioni di bug
- Correzione di
waitForStableInActiveWindow
(290457f1, b/420349130)
Versione 2.4.0-alpha03
20 maggio 2025
androidx.test.uiautomator:uiautomator:2.4.0-alpha03
viene rilasciata. La versione 2.4.0-alpha03 contiene questi commit.
Correzioni di bug
- È stato risolto il problema relativo a
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
viene rilasciata. La versione 2.4.0-alpha02 contiene questi commit.
Nuove funzionalità
- Forma iniziale della nuova API
Uiautomator
.UiAutomatorTestScope
può essere creato tramite la fabbricauiAutomator
che dà accesso alle nuove APIonView
. - Regole Lint iniziali per l'avviso relativo all'utilizzo di
AccessibilityNodeInfo#getText
e suggerimento di utilizzo ditextAsString
.
Modifiche alle API
- È stato aggiunto
Configurator#setDefaultDisplayId
per impostare un ID display per limitare tutte le ricerche a (Icdf17). - Modificato
Searchable
(interfaccia condivisa daUiDevice
eUiObject2
) 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).- Risolto un 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
viene rilasciata. La versione 2.4.0-alpha01 contiene questi commit.
Modifiche alle API
- Sono stati ritirati
Configurator#getKeyInjectionDelay
esetKeyInjectionDelay
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).
- È stato corretto il problema relativo agli errori
StaleObjectException
che si verificano durante le chiamate atoString
ohashCode
su unUiObject2
obsoleto. (I38ea1). - Miglioramento delle prestazioni di
UiWatcher
saltando le chiamatewaitForIdle
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
viene rilasciata. 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
eBy.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).
- È stato aggiunto
- Condizioni personalizzate: è stata esposta un'interfaccia
Condition
per supportare le condizioni di attesa personalizzate e sono stati aggiunti i metodiUiDevice#wait
,UiObject2#wait
eUiObject2#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
viene rilasciata. La versione 2.3.0-beta01 contiene questi commit.
Modifiche alle API
- Per coerenza, i metodi di margine basati sulla percentuale
UiObject2
sono stati rinominati insetGestureMarginPercentage
esetGestureMarginsPercentage
(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
viene rilasciata. 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'istanzaInstrumentation
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
viene rilasciata. La versione 2.3.0-alpha04 contiene questi commit.
Modifiche alle API
- Sono stati aggiunti
By.hasParent
eBy.hasAncestor
per supportare la ricerca di oggetti in base ai relativi elementi principali (I93c36). - È stato aggiunto
UiObject2#getHint
per recuperare il testo del suggerimento di un oggetto e i metodiBy.hint
per selezionare gli oggetti in base al testo del suggerimento (Idd345). - Aggiunta di
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)
eUiDevice#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)
ewait(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
viene rilasciata. 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 inUntil
. Inoltre, sono stati aggiornati i metodiUiDevice#wait
eUiObject2#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à conUiScrollable
(099d6e). - Sono stati aggiunti
UiDevice#setOrientationPortrait
esetOrientationLandscape
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
UiObject2#setText
eclearText
che impediva la modifica del testo sugli SDK 18 e 19 (77e41d). - È stato risolto il problema relativo all'esecuzione di
UiWatcher
nell'ordine errato (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
viene rilasciata. 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 ritiratiUiDevice#setCompressedLayoutHeirarchy
per correggere un errore di battitura nel nome del metodo (4e2f65). UiAutomatorInstrumentationTestRunner
è stato contrassegnato come deprecato perché gestisceUiAutomatorTestCase
deprecati e non è più necessario (be6c85).- Ritardo aggiornato tra i
UiObject2
MotionEvent
s 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 relativo al lancio occasionale di
StaleObjectException
durante l'esecuzione di query o l'attesa di oggetti (4cbcc0). - Sono stati corretti i valori restituiti di
UiScrollable#scrollToBeginning
,scrollToEnd
,flingToBeginning
eflingToEnd
che non indicano se è stato raggiunto l'inizio o la fine (d33e06). - È stato corretto il problema dei metodi
UiScrollable#scrollForward
escrollBackward
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
epinchOut
(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
viene rilasciata. 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 gestiUiObject2
più fluidi. - Ridotto l'intervallo di polling durante l'attesa da 1000 ms a 100 ms.
- Sono stati aggiornati
UiDevice#wakeUp
eUiDevice#sleep
per utilizzareKEYCODE_WAKEUP
eKEYCODE_SLEEP
per supportare i dispositivi che ignorano il tasto di accensione. - Aggiunta di
UiObject2#getDisplayId
e supporto per la ricerca e la gestione di oggetti su più display. - Sono stati aggiunti i metodi
UiObject#click
eUiObject2#clickAndWait
per fare clic su un punto utilizzando le relative coordinate.
Correzioni di bug
- Risolto un problema per cui i calcoli delle dimensioni di visualizzazione erano a volte errati e potevano ignorare parti dello schermo, soprattutto in modalità multi-finestra (Ifc016c).
- È stato corretto il ridimensionamento degli screenshot in
UiDevice#takeScreenshot
(Id80ad6). - È stata migliorata l'affidabilità di
Until.scrollFinished
eUiObject2#scroll
(I7b0595). - Sono stati corretti gli avvisi relativi alla modalità rigorosa
IncorrectContextUseViolation
(Iffa6a0).