Testa Uiautomator
Aggiornamento più recente | Release stabile | Candidato per l'uscita | Versione beta | Release alpha |
---|---|---|---|---|
26 giugno 2024 | 2.3.0 | - | - | 2.4.0-alpha01 |
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 artefatti necessari nel file build.gradle
per
l'app o il modulo:
Alla moda
dependencies { // Use to implement UIAutomator tests androidTestImplementation "androidx.test.uiautomator:uiautomator:2.4.0-alpha01" }
Kotlin
dependencies { // Use to implement UIAutomator tests androidTestImplementation("androidx.test.uiautomator:uiautomator:2.4.0-alpha01") }
Per saperne di più sulle dipendenze, consulta Aggiungere dipendenze build.
Feedback
Il tuo feedback ci aiuta a migliorare Jetpack. Facci sapere se scopri nuovi problemi o hai idee per migliorare questa raccolta. Dai un'occhiata ai problemi esistenti in questa libreria prima di crearne uno nuovo. Puoi aggiungere il tuo voto a un problema esistente facendo clic sul pulsante a stella.
Per ulteriori informazioni, consulta la documentazione di Issue Tracker.
Versione 2.4
Versione 2.4.0-alpha01
26 giugno 2024
Viene rilasciato androidx.test.uiautomator:uiautomator:2.4.0-alpha01
. La versione 2.4.0-alpha01 contiene questi commit.
Modifiche alle API
Configurator#getKeyInjectionDelay
esetKeyInjectionDelay
deprecati poiché il parametro non è utilizzato ora che il testo viene sempre inserito direttamente anziché mediante 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 esempio Display fluido) (I43f12). - È stata ridotta l'instabilità dovuta all'inattività del nodo di accessibilità in determinate interfacce utente invalidando periodicamente la cache di accessibilità (I3be25).
- Sono stati risolti i problemi di
StaleObjectException
che si verificavano durante la chiamata atoString
ohashCode
su unUiObject2
inattivo. (I38ea1). - Prestazioni di
UiWatcher
migliorate perché si saltano le chiamatewaitForIdle
non necessarie. (I8c65e). - Sono state corrette le imprecisioni relative a javadoc, in particolare per chiarire quando viene utilizzato ogni parametro
Configurator
. (Ie10b1, I71631).
Versione 2.3.0
Versione 2.3.0
21 febbraio 2024
Viene rilasciato androidx.test.uiautomator:uiautomator:2.3.0
. 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
UiDevice
metodi per gestire i display secondari (Ie6544, I912cd). - Nuovi selettori:
- È stato aggiunto
By.displayId
alla selezione degli oggetti in base al relativo ID visualizzazione (I1825b). - Sono stati aggiunti
By.hasParent
eBy.hasAncestor
per selezionare gli oggetti in base ai relativi elementi padre (I93c36). - Sono stati aggiunti
By.hint
metodi per selezionare gli oggetti tramite il testo del suggerimento (Idd345).
- È stato aggiunto
- Condizioni personalizzate: è stata esposta un'interfaccia
Condition
per supportare 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 a volte erano errati e potevano ignorare parti dello schermo (Ifc016). Potrebbe essere necessario regolare le coordinate e gli offset utilizzati nei test.
- È stata aggiornata l'inserimento di
MotionEvent
per migliorare l'accuratezza (678ca3) e l'emulazione dei gesti degli utenti (454450). - È stata migliorata l'affidabilità di scorrimento (I7b059), rotazioni (c6cea0), clic lunghi (49572b), pizzicamento (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
Viene rilasciato androidx.test.uiautomator:uiautomator:2.3.0-beta01
. La versione 2.3.0-beta01 contiene questi commit.
Modifiche alle API
- I metodi di margine su base percentuale
UiObject2
sono stati rinominati insetGestureMarginPercentage
esetGestureMarginsPercentage
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
Viene rilasciato androidx.test.uiautomator:uiautomator:2.3.0-alpha05
. La versione 2.3.0-alpha05 contiene questi commit.
Modifiche alle API
- È stato aggiunto
UiObject2#getDrawingOrder
per esporre le informazioni sull'ordine del disegno (z-index). (I5dfa4). - Sono stati aggiunti
UiDevice
metodi 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
inattiva se fosse stata ricreata (I18cae). - È stato corretto il problema di NPE se non era possibile determinare l'ID visualizzato durante il dump dei nodi (Icafcb).
- È stato aggiunto un avviso quando si eseguono clic/scorrimenti su oggetti non selezionabili o scorrevoli (I4a5d9).
- È stata ridotta la velocità di scorrimento predefinita di
UiObject2
per migliorare l'affidabilità (I5e071).
Versione 2.3.0-alpha04
26 luglio 2023
Viene rilasciato androidx.test.uiautomator:uiautomator:2.3.0-alpha04
. 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 all'elemento padre (I93c36). - È stato aggiunto
UiObject2#getHint
per recuperare il testo del suggerimento di un oggetto e metodiBy.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 in 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). - Riaggiunta dei metodi
wait(SearchCondition, long)
ewait(UiObject2Condition, long)
per la compatibilità con le versioni precedenti (Iebfda). UiDevice#executeShellCommand
modificato in pubblico, ma sconsigliato invece di nascosto (Ic48a1).
Correzioni di bug
- È stata aggiornata l'iniezione di
MotionEvent
per ridurre l'inefficienza dando la priorità alla precisione dei gesti piuttosto che alla velocità (678ca3). - È stato aggiunto il tracciamento ai metodi che richiedono un uso intensivo delle risorse per identificare i colli di bottiglia delle prestazioni (d17de3).
- È stato aggiunto un meccanismo di nuovo tentativo quando viene avviata una connessione UiAutomation (048caf).
- È stato corretto un possibile NPE da nodi null in
UiDevice#dumpWindowHierarchy
(b725eb). - Sono stati corretti gli errori imprevisti relativi all'esecuzione di query o all'uso di display privati (985db6, 7053d4).
Versione 2.3.0-alpha03
19 aprile 2023
Viene rilasciato androidx.test.uiautomator:uiautomator:2.3.0-alpha03
. La versione 2.3.0-alpha03 contiene questi commit.
Modifiche alle API
- Ha esposto un'interfaccia
Condition
per consentire condizioni di attesa personalizzate invece di basarsi esclusivamente sugli elementi integrati 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 una condizione non viene soddisfatta e per raggiungere la parità conUiScrollable
(099d6e). - Sono stati aggiunti
UiDevice#setOrientationPortrait
esetOrientationLandscape
per facilitare la rotazione tra tipi di dispositivi (e13cb7). - È stato aggiunto
UiObject2#setGestureMarginPercent
per supportare l'impostazione di margini relativi alle dimensioni dell'oggetto. (Ib8c77).
Correzioni di bug
- Corretti i metodi
UiScrollable
che a volte utilizzavano coordinate non valide negli SDK 18-22 (b53ece). - È stato corretto il problema di
UiObject2#setText
eclearText
di modifica del testo sugli SDK 18 e 19 (77e41d). - È stato corretto l'ordine di esecuzione dei file
UiWatcher
(c85f92). - È stato risolto il problema per cui la rotazione del dispositivo potrebbe non essere ancora completa dopo una modifica dell'orientamento di
UiDevice
(c6cea0). - Affidabilità migliorata di clic lunghi, trascinamenti e pizzicamenti (49572b, 3c619a).
Versione 2.3.0-alpha02
11 gennaio 2023
Viene rilasciato androidx.test.uiautomator:uiautomator:2.3.0-alpha02
. La versione 2.3.0-alpha02 contiene questi commit.
Modifiche alle API
- Logging rielaborato in tutta la libreria per fornire maggiori informazioni, segnalare possibili problemi e migliorare la coerenza.
- È stato aggiunto
UiDevice#pressKeyCodes
per supportare la pressione contemporanea di più tasti, ad esempio la pressione di POWER e VOLUME_DOWN per acquisire uno screenshot (22e525). - È stato aggiunto
UiDevice#setCompressedLayoutHierarchy
e ha deprecatoUiDevice#setCompressedLayoutHeirarchy
per correggere un errore ortografico nel nome del metodo (4e2f65). UiAutomatorInstrumentationTestRunner
contrassegnato come deprecato in quanto gestisce iUiAutomatorTestCase
deprecati e non è più necessario (be6c85).- Aggiornato il ritardo tra
UiObject2
MotionEvent
secondi al doppio della frequenza di aggiornamento del display per emulare meglio i gesti dell'utente (454450). - Aggiunto il supporto per la corrispondenza di testo e descrizioni su più righe (1625e6, b/255787130).
Correzioni di bug
- Corretto il problema di
StaleObjectException
che a volte venivano generati durante l'esecuzione di query o l'attesa degli 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
ignorando il timeout configurato (29e4f3). - È stato risolto il problema che il costruttore della copia
BySelector
non gestisce i selettori di profondità (6c7b91). - È stata corretta la gestione di valori percentuali non validi in
UiObject#pinchIn
epinchOut
(01b973). - È stato risolto un problema raro per cui il supporto multi-finestra veniva perso in seguito alla reimpostazione della connessione
UiAutomation
sottostante (1bb956).
Versione 2.3.0-alpha01
7 settembre 2022
Viene rilasciato androidx.test.uiautomator:uiautomator:2.3.0-alpha01
. La versione 2.3.0-alpha01 contiene questi commit.
Modifiche alle API
- Ha annotato la nullità di tutti i metodi pubblici.
- Iniezione di
MotionEvent
modificata in asincrona con un breve ritardo per gestiUiObject2
più fluidi. - Intervallo di polling ridotto in attesa da 1000 ms a 100 ms.
UiDevice#wakeUp
eUiDevice#sleep
aggiornati in modo che utilizzinoKEYCODE_WAKEUP
eKEYCODE_SLEEP
per supportare i dispositivi che sostituiscono il tasto di accensione.- Aggiunti
UiObject2#getDisplayId
e supporto per la ricerca e la gestione degli 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 a volte erano errati e potevano ignorare parti dello schermo, soprattutto in modalità multi-finestra (Ifc016c).
- È stato corretto il ridimensionamento degli screenshot in
UiDevice#takeScreenshot
(Id80ad6). - Affidabilità di
Until.scrollFinished
eUiObject2#scroll
migliorata (I7b0595). - Sono stati corretti gli avvisi
IncorrectContextUseViolation
relativi alla modalità con restrizioni (Iffa6a0).