Test Uiautomator
Ultimo aggiornamento | Release stabile | Candidato per la release | Versione beta | Versione alpha |
---|---|---|---|---|
7 maggio 2025 | 2.3.0 | - | - | 2.4.0-alpha02 |
Dichiarazione delle dipendenze
Per aggiungere una dipendenza al test, devi aggiungere il repository Maven di Google al tuo progetto. Per ulteriori informazioni, consulta il repository Maven di Google.
Aggiungi le dipendenze per gli elementi 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-alpha02" }
Kotlin
dependencies { // Use to implement UIAutomator tests androidTestImplementation("androidx.test.uiautomator:uiautomator:2.4.0-alpha02") }
Per ulteriori informazioni sulle dipendenze, consulta Aggiungere dipendenze di compilazione.
Feedback
Il tuo feedback ci aiuta a migliorare Jetpack. Facci sapere se riscontri nuovi problemi o hai idee per migliorare questa raccolta. Prima di crearne uno nuovo, 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 ulteriori informazioni, consulta la documentazione del Tracker dei problemi.
Versione 2.4
Versione 2.4.0-alpha02
7 maggio 2025
androidx.test.uiautomator:uiautomator:2.4.0-alpha02
viene rilasciato. La versione 2.4.0-alpha02 contiene questi commit.
Nuove funzionalità
- Forma iniziale della nuova API
Uiautomator
.UiAutomatorTestScope
può essere creato tramite la factoryuiAutomator
che consente l'accesso alle nuove APIonView
. - Regole Lint iniziali per avvisare sull'utilizzo di
AccessibilityNodeInfo#getText
e suggerire l'utilizzo ditextAsString
.
Modifiche all'API
- È stato aggiunto
Configurator#setDefaultDisplayId
per impostare un ID display per limitare tutte le ricerche a (Icdf17). - Per praticità, è stata impostata come pubblica la proprietà
Searchable
(interfaccia condivisa daUiDevice
eUiObject2
) (I67f18).
Correzioni di bug
- È stata corretta la gestione delle chiavi meta in
UiDevice#pressKeyCodes
. (I73f80). - È stato aggiornato
UiDevice#getWindowRoots
in modo che restituisca sempre le radici in ordine Z (I87426). - Risolto un problema per cui alcuni gesti non erano completi (I60dd3, If4edd).
- È stato corretto un raro loop infinito durante la chiamata a
UiDevice#scrollUntil
(I39989).
Versione 2.4.0-alpha01
26 giugno 2024
androidx.test.uiautomator:uiautomator:2.4.0-alpha01
viene rilasciato. La versione 2.4.0-alpha01 contiene questi commit.
Modifiche all'API
Configurator#getKeyInjectionDelay
esetKeyInjectionDelay
sono stati ritirati perché il parametro non è più utilizzato ora che il testo viene sempre inserito direttamente anziché tramite le pressioni dei tasti. (I3bcc5).
Correzioni di bug
- È stato aggiornato il ritardo tra gli eventi di movimento
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).
- Sono stati corretti gli errori
StaleObjectException
che si verificano quando si chiamatoString
ohashCode
su unUiObject2
non aggiornato. (I38ea1). - Miglioramento delle prestazioni di
UiWatcher
saltando le chiamatewaitForIdle
non necessarie. (I8c65e). - Sono state corrette le imprecisioni del 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 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, nonché metodi
UiDevice
per gestire i display secondari (Ie6544, I912cd). - Nuovi selettori:
- È stato aggiunto
By.displayId
per selezionare gli oggetti in base al relativo ID visualizzato (I1825b). - Sono stati aggiunti
By.hasParent
eBy.hasAncestor
per selezionare gli oggetti in base ai relativi oggetti principali (I93c36). - Sono stati aggiunti metodi
By.hint
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 per cui i calcoli delle dimensioni del display erano a volte errati e potevano ignorare parti dello schermo (Ifc016). Potrebbe essere necessario modificare le coordinate e gli offset utilizzati nei test.
- È stata aggiornata l'iniezione di
MotionEvent
per migliorare l'accuratezza (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 rilasciato. La versione 2.3.0-beta01 contiene questi commit.
Modifiche all'API
- Per motivi di coerenza, i metodi di margine basati su 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 rilasciato. La versione 2.3.0-alpha05 contiene questi commit.
Modifiche all'API
- È stato aggiunto
UiObject2#getDrawingOrder
per mostrare le informazioni sull'ordine di disegno (indice z). (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 un problema per cui
UiDevice
utilizzava un'istanzaInstrumentation
obsoleta se veniva ricreata (I18cae). - È stato corretto un possibile errore NPE se non è possibile determinare l'ID visualizzato durante il dumping dei nodi (Icafcb).
- È stato aggiunto un avviso quando vengono eseguiti clic/scorrimenti su oggetti non cliccabili/scorrevoli (I4a5d9).
- È stata ridotta la velocità di scorrimento predefinita
UiObject2
per migliorare l'affidabilità (I5e071).
Versione 2.3.0-alpha04
26 luglio 2023
androidx.test.uiautomator:uiautomator:2.3.0-alpha04
viene rilasciato. La versione 2.3.0-alpha04 contiene questi commit.
Modifiche all'API
- Sono stati aggiunti
By.hasParent
eBy.hasAncestor
per supportare la ricerca degli oggetti in base ai relativi elementi principali (I93c36). - È stato aggiunto
UiObject2#getHint
per recuperare il testo di un suggerimento di un oggetto e i metodiBy.hint
per selezionare gli oggetti in base al loro testo di 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)
eUiDevice#getDisplayWidth(int)
per trovare le dimensioni di un display in base al relativo ID (Ie6544). - Metodi
wait(SearchCondition, long)
ewait(UiObject2Condition, long)
aggiunti di nuovo per la compatibilità con le versioni precedenti (Iebfda). UiDevice#executeShellCommand
è stato impostato come pubblico, ma scoraggiato anziché nascosto (Ic48a1).
Correzioni di bug
- È stata aggiornata l'iniezione di
MotionEvent
per ridurre l'incostanza dando la priorità all'accuratezza dei gesti rispetto alla velocità (678ca3). - È stato aggiunto il monitoraggio ai metodi che richiedono molte risorse per identificare i colli di bottiglia delle prestazioni (d17de3).
- È stato aggiunto un meccanismo di ripetizione quando si avvia una connessione UiAutomation (048caf).
- È stato corretto un possibile NPE da nodi null in
UiDevice#dumpWindowHierarchy
(b725eb). - Sono stati corretti errori imprevisti dovuti a 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 rilasciato. La versione 2.3.0-alpha03 contiene questi commit.
Modifiche all'API
- È stata esposta un'interfaccia
Condition
per consentire condizioni di attesa personalizzate anziché fare affidamento esclusivamente su quelle predefinite inUntil
e 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 in base alle dimensioni dell'oggetto. (Ib8c77)
Correzioni di bug
- Sono stati corretti i metodi
UiScrollable
che a volte utilizzano coordinate non valide negli SDK da 18 a 22 (b53ece). - È stato corretto il problema di mancata modifica del testo da parte di
UiObject2#setText
eclearText
negli SDK 18 e 19 (77e41d). - È stato corretto il problema relativo all'esecuzione dei
UiWatcher
nell'ordine sbagliato (c85f92). - È stato risolto il problema per cui la rotazione del dispositivo potrebbe non essere ancora completata dopo una modifica dell'orientamento di
UiDevice
(c6cea0). - Aumento dell'affidabilità di clic, trascinamenti e pizzichi prolungati (49572b, 3c619a).
Versione 2.3.0-alpha02
11 gennaio 2023
androidx.test.uiautomator:uiautomator:2.3.0-alpha02
viene rilasciato. La versione 2.3.0-alpha02 contiene questi commit.
Modifiche all'API
- Il logging è stato rielaborato in tutta la libreria per fornire maggiori informazioni, avvisare di possibili problemi e migliorare la coerenza.
- È stato aggiunto
UiDevice#pressKeyCodes
per supportare la pressione di più tasti contemporaneamente, ad esempio la pressione di POWER e VOLUME_DOWN per acquisire uno screenshot (22e525). - È stato aggiunto
UiDevice#setCompressedLayoutHierarchy
e ritiratoUiDevice#setCompressedLayoutHeirarchy
per correggere un errore ortografico nel nome del metodo (4e2f65). UiAutomatorInstrumentationTestRunner
è stato contrassegnato come deprecato perché gestisce iUiAutomatorTestCase
deprecati e non è più necessario (be6c85).- Il ritardo tra i
UiObject2
MotionEvent
è stato aggiornato al doppio della frequenza di aggiornamento del display per emulare meglio i gesti dell'utente (454450). - È stato aggiunto il supporto della corrispondenza del testo e della descrizione a più righe (1625e6, b/255787130).
Correzioni di bug
- È stato corretto il problema per cui a volte venivano generati
StaleObjectException
durante l'esecuzione di query o in attesa di oggetti (4cbcc0). - Sono stati corretti i valori restituiti di
UiScrollable#scrollToBeginning
,scrollToEnd
,flingToBeginning
eflingToEnd
che non indicano se è stato raggiunto l'inizio/la fine (d33e06). - Sono stati corretti i metodi
UiScrollable#scrollForward
escrollBackward
che ignoravano il timeout configurato (29e4f3). - È stato corretto il problema per cui il costruttore di copia di
BySelector
non gestiva i selettori di profondità (6c7b91). - È stato corretto il trattamento dei valori percentuali non validi in
UiObject#pinchIn
epinchOut
(01b973). - È stato risolto un raro problema per cui il supporto multi-finestra andava 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 rilasciato. La versione 2.3.0-alpha01 contiene questi commit.
Modifiche all'API
- È stata annotata la nullità di tutti i metodi pubblici.
- È stata impostata l'iniezione
MotionEvent
su asincrona con un breve ritardo per gestiUiObject2
più fluidi. - L'intervallo di polling in attesa è stato ridotto da 1000 ms a 100 ms.
UiDevice#wakeUp
eUiDevice#sleep
sono stati aggiornati in modo da utilizzareKEYCODE_WAKEUP
eKEYCODE_SLEEP
per supportare i dispositivi che sostituiscono il tasto di accensione.- È stato aggiunto
UiObject2#getDisplayId
e il supporto per trovare e gestire gli 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
- È stato risolto un problema per cui i calcoli delle dimensioni del display erano a volte errati e potevano ignorare parti dello schermo, in particolare in modalità multifinestra (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
IncorrectContextUseViolation
relativi alla modalità rigorosa (Iffa6a0).