Test Uiautomator
| Najnowsza aktualizacja | Wersja stabilna | Wersja kandydująca do publikacji | Wersja beta | Wersja Alfa |
|---|---|---|---|---|
| 3 grudnia 2025 r. | 2.3.0 | - | - | 2.4.0-alpha07 |
Deklarowanie zależności
Aby dodać zależność od testu, musisz dodać do projektu repozytorium Maven Google. Więcej informacji znajdziesz w artykule Repozytorium Maven Google.
Dodaj zależności dotyczące potrzebnych artefaktów w pliku build.gradle aplikacji lub modułu:
Odlotowe
dependencies { // Use to implement UIAutomator tests androidTestImplementation "androidx.test.uiautomator:uiautomator:2.4.0-alpha07" }
Kotlin
dependencies { // Use to implement UIAutomator tests androidTestImplementation("androidx.test.uiautomator:uiautomator:2.4.0-alpha07") }
Więcej informacji o zależnościach znajdziesz w artykule Dodawanie zależności kompilacji.
Opinia
Twoja opinia pomoże nam ulepszyć Jetpacka. Jeśli odkryjesz nowe problemy lub masz pomysły na ulepszenie tej biblioteki, daj nam znać. Zanim utworzysz nową kartę, zapoznaj się z dotychczasowymi problemami w tej bibliotece. Możesz dodać swój głos do istniejącego problemu, klikając przycisk gwiazdki.
Więcej informacji znajdziesz w dokumentacji narzędzia Issue Tracker.
Test Uiautomator Shell w wersji 1.0
Wersja 1.0.0-alpha03
3 grudnia 2025 r.
Publikacja androidx.test.uiautomator:uiautomator-shell:1.0.0-alpha03 Wersja 1.0.0-alpha03 zawiera te zmiany.
Zmiany w interfejsie API
- Zmieniono
startActivityna oczekiwanie na nowe okno (I35da6, b/440021797) - Zaktualizowano instancję
screenSizePixelw klastrzeRecorderCommands(If558c, b/429173157)
Wersja 1.0.0-alpha02
13 sierpnia 2025 r.
Publikacja androidx.test.uiautomator:uiautomator-shell:1.0.0-alpha02 Wersja 1.0.0-alpha02 zawiera te zmiany.
Wersja 1.0.0-alpha01
18 czerwca 2025 r.
Publikacja androidx.test.uiautomator:uiautomator-shell:1.0.0-alpha01 Wersja 1.0.0-alpha01 zawiera te zmiany.
Nowe funkcje
- Pierwsza wersja alfa biblioteki powłoki ui-automator do wykonywania poleceń powłoki jako użytkownik powłoki. Ta biblioteka umożliwia odczytywanie standardowego wyjścia i standardowego wyjścia błędów oraz zapisywanie w standardowym wejściu procesu sh uruchomionego przez powłokę. W praktyce przenosi on wstecznie funkcję
UiAutomation#executeShellCommandRwewprowadzoną w interfejsie API 34.
Wersja 2.4
Wersja 2.4.0-alpha07
3 grudnia 2025 r.
Publikacja androidx.test.uiautomator:uiautomator:2.4.0-alpha07 Wersja 2.4.0-alpha07 zawiera te zmiany.
Zmiany w interfejsie API
- Zmieniono
startActivitywait na wait for new window. Dzięki temu uruchamianie jest zwykle synchroniczne, a przyszłe wersje Macrobenchmark będą mogły konfigurować wykrywanie zakończenia uruchamiania. (I35da6, Id6e6f, b/440021797) - Usunęliśmy interfejs API bez wyraźnej nazwy pakietu w
UiAutomatorTestScope. (I8c285, b/413417205)
Wersja 2.4.0-alpha06
13 sierpnia 2025 r.
Publikacja androidx.test.uiautomator:uiautomator:2.4.0-alpha06 Wersja 2.4.0-alpha06 zawiera te zmiany.
Nowe funkcje
- Dodaliśmy interfejsy API oparte na oknach, aby ułatwić testowanie wielu okien. Na przykład za pomocą
UiDevice#findWindowmożna teraz znaleźć konkretnyUiWindowzgodnie zByWindowSelectorutworzonym za pomocą metod fabrycznychBy.Window. (I359c4, I40528, I8c963)
Wersja 2.4.0-alpha05
18 czerwca 2025 r.
Publikacja androidx.test.uiautomator:uiautomator:2.4.0-alpha05 Wersja 2.4.0-alpha05 zawiera te zmiany.
Zmiany w interfejsie API
- Dodano
UiObject2#waitForStablejako skrót doUiObject2#accessibilityNodeInfo#waitForStable()
Wersja 2.4.0-alpha04
4 czerwca 2025 r.
Publikacja androidx.test.uiautomator:uiautomator:2.4.0-alpha04 Wersja 2.4.0-alpha04 zawiera te zmiany.
Zmiany w interfejsie API
- Zmieniono nazwę
onViewnaonElement, aby wyjaśnić, że działa ona z funkcją tworzenia (I53a3b, b/419006806).
Poprawki błędów
- Rozwiąż problem dotyczący produktu:
waitForStableInActiveWindow(290457f1, b/420349130)
Wersja 2.4.0-alpha03
20 maja 2025 r.
Publikacja androidx.test.uiautomator:uiautomator:2.4.0-alpha03 Wersja 2.4.0-alpha03 zawiera te zmiany.
Poprawki błędów
- Rozwiązanie problemu polegającego na tym, że w niektórych przypadkach funkcja
waitForStableInActiveWindowzgłaszała wyjątek NullPointerException (Ibf50f, b/417046391).
Wersja 2.4.0-alpha02
7 maja 2025 r.
Publikacja androidx.test.uiautomator:uiautomator:2.4.0-alpha02 Wersja 2.4.0-alpha02 zawiera te zmiany.
Nowe funkcje
- Początkowy kształt nowego interfejsu
UiautomatorAPI.UiAutomatorTestScopemożna utworzyć za pomocą fabrykiuiAutomator, która zapewnia dostęp do nowych interfejsów APIonView. - Początkowe reguły Lint ostrzegające przed użyciem
AccessibilityNodeInfo#getTexti sugerujące użycietextAsString.
Zmiany w interfejsie API
- Dodano
Configurator#setDefaultDisplayId, aby ustawić identyfikator wyświetlania i ograniczyć wszystkie wyszukiwania do (Icdf17). - Zmieniono
Searchable(interfejs współdzielony przezUiDeviceiUiObject2) na publiczny dla wygody (I67f18).
Poprawki błędów
- Poprawiliśmy obsługę klawiszy Meta w
UiDevice#pressKeyCodes. (I73f80). - Zaktualizowano funkcję
UiDevice#getWindowRoots, aby zawsze zwracała elementy główne w kolejności Z (I87426). - Rozwiązaliśmy problem, który powodował, że niektóre gesty były niekompletne (I60dd3, If4edd).
- Usunęliśmy rzadko występującą pętlę nieskończoną podczas wywoływania funkcji
UiDevice#scrollUntil(I39989).
Wersja 2.4.0-alpha01
26 czerwca 2024 r.
Publikacja androidx.test.uiautomator:uiautomator:2.4.0-alpha01 Wersja 2.4.0-alpha01 zawiera te zmiany.
Zmiany w interfejsie API
- Wycofano parametry
Configurator#getKeyInjectionDelayisetKeyInjectionDelay, ponieważ nie są już używane. Tekst jest teraz zawsze wstrzykiwany bezpośrednio, a nie przez naciśnięcie klawiszy. (I3bcc5).
Poprawki błędów
- Zaktualizowano opóźnienie między
UiObject2zdarzeniami ruchu, aby uwzględnić dynamiczne częstotliwości odświeżania (np. płynny wyświetlacz) (I43f12). - Zmniejszono niestabilność spowodowaną nieaktualnością węzła ułatwień dostępu w niektórych interfejsach przez okresowe unieważnianie pamięci podręcznej ułatwień dostępu (I3be25).
- Naprawiono błędy
StaleObjectExceptionwystępujące podczas wywoływania funkcjitoStringlubhashCodena nieaktualnym obiekcieUiObject2. (I38ea1). - Poprawiliśmy wydajność
UiWatcher, pomijając niepotrzebne wywołaniawaitForIdle. (I8c65e). - Poprawiono nieścisłości w dokumentacji Javadoc, zwłaszcza w celu wyjaśnienia, kiedy używany jest każdy parametr
Configurator. (Ie10b1, I71631).
Wersja 2.3.0
Wersja 2.3.0
21 lutego 2024 r.
Publikacja androidx.test.uiautomator:uiautomator:2.3.0 Wersja 2.3.0 zawiera te zatwierdzenia.
Ważne zmiany od wersji 2.2.0
- Obsługa wielu wyświetlaczy: dodano obsługę wyszukiwania i obsługi obiektów na wielu wyświetlaczach oraz
UiDevicemetody zarządzania wyświetlaczami dodatkowymi (Ie6544, I912cd). - Nowe selektory:
- Warunki niestandardowe: udostępniliśmy
Conditioninterfejs obsługujący niestandardowe warunki oczekiwania i dodaliśmy odpowiednie metodyUiDevice#wait,UiObject2#waitiUiObject2#scrollUntil(27c0ea, 099d6e). - Poprawki błędów i niezawodność
- Rozwiązaliśmy problem, który powodował, że obliczenia rozmiaru wyświetlacza były czasami nieprawidłowe i mogły ignorować części ekranu (Ifc016). Współrzędne i przesunięcia używane w testach mogą wymagać dostosowania.
- Zaktualizowaliśmy wstrzykiwanie
MotionEvent, aby zwiększyć dokładność (678ca3) i lepiej emulować gesty użytkownika (454450). - Poprawiliśmy niezawodność przewijania (I7b059), obracania (c6cea0), długich kliknięć (49572b), uszczypnięć (3c619a) i innych gestów.
Wersja 2.3.0-rc01
7 lutego 2024 r.
androidx.test.uiautomator:uiautomator:2.3.0-rc01 zostaje opublikowany bez zmian. Wersja 2.3.0-rc01 zawiera te zatwierdzenia.
Wersja 2.3.0-beta01
13 grudnia 2023 r.
Publikacja androidx.test.uiautomator:uiautomator:2.3.0-beta01 Wersja 2.3.0-beta01 zawiera te zatwierdzenia.
Zmiany w interfejsie API
- Zmieniono nazwy metod obliczania marży na podstawie wartości procentowych z
UiObject2nasetGestureMarginPercentageisetGestureMarginsPercentage, aby zachować spójność (I24435).
Poprawki błędów
- Poprawiono błąd zgłaszany, gdy nie można znaleźć lub uzyskać dostępu do wyświetlacza dodatkowego (116b23).
Wersja 2.3.0-alpha05
1 listopada 2023 roku
Publikacja androidx.test.uiautomator:uiautomator:2.3.0-alpha05 Wersja 2.3.0-alpha05 zawiera te zmiany.
Zmiany w interfejsie API
- Dodano
UiObject2#getDrawingOrder, aby udostępnić informacje o kolejności rysowania (indeks z). (I5dfa4). - Dodano
UiDevicemetody pobierania, ustawiania, zamrażania i odmrażania rotacji wyświetlaczy dodatkowych. (I912cd).
Poprawki błędów
- Dodano ponawianie do
UiObject2#scrollUntil, gdy nie można było wykryć końca przewijania (Ibac6f). - Rozwiązaliśmy problem polegający na tym, że
UiDeviceużywał nieaktualnej instancjiInstrumentation, jeśli została ona ponownie utworzona (I18cae). - Rozwiązanie problemu z możliwym błędem NPE, jeśli podczas zrzucania węzłów nie można było określić identyfikatora wyświetlacza (Icafcb).
- Dodano ostrzeżenie podczas klikania lub przewijania obiektów, których nie można kliknąć ani przewinąć (I4a5d9).
- Zmniejszyliśmy domyślną szybkość przewijania
UiObject2, aby zwiększyć niezawodność (I5e071).
Wersja 2.3.0-alpha04
26 lipca 2023 r.
Publikacja androidx.test.uiautomator:uiautomator:2.3.0-alpha04 Wersja 2.3.0-alpha04 zawiera te zatwierdzenia.
Zmiany w interfejsie API
- Dodano parametry
By.hasParentiBy.hasAncestor, aby umożliwić wyszukiwanie obiektów według ich elementów nadrzędnych (I93c36). - Dodano
UiObject2#getHint, aby pobrać tekst podpowiedzi obiektu, oraz metodyBy.hint, aby wybierać obiekty według tekstu podpowiedzi (Idd345). - Dodaliśmy
By.displayId, aby umożliwić wybieranie obiektów na podstawie wyświetlacza, na którym się znajdują (I1825b). - Dodano metody
UiDevice#getDisplayHeight(int)iUiDevice#getDisplayWidth(int), które umożliwiają znajdowanie wymiarów wyświetlacza na podstawie jego identyfikatora (Ie6544). - Ponownie dodano metody
wait(SearchCondition, long)iwait(UiObject2Condition, long)w celu zapewnienia zgodności wstecznej (Iebfda). - Zmieniono
UiDevice#executeShellCommandna publiczne, ale zniechęcające zamiast ukrytego (Ic48a1).
Poprawki błędów
- Zaktualizowano wstrzykiwanie
MotionEvent, aby zmniejszyć niestabilność przez nadanie priorytetu dokładności gestów zamiast szybkości (678ca3). - Dodano śledzenie metod wymagających dużych ilości zasobów, aby identyfikować wąskie gardła wydajności (d17de3).
- Dodano mechanizm ponawiania próby podczas inicjowania połączenia UiAutomation (048caf).
- Naprawiono możliwy błąd NPE z węzłów o wartości null w
UiDevice#dumpWindowHierarchy(b725eb). - Usunięto nieoczekiwane błędy związane z wysyłaniem zapytań dotyczących prywatnych wyświetleń lub wykonywaniem na nich działań (985db6, 7053d4).
Wersja 2.3.0-alpha03
19 kwietnia 2023 r.
Publikacja androidx.test.uiautomator:uiautomator:2.3.0-alpha03 Wersja 2.3.0-alpha03 zawiera te zatwierdzenia.
Zmiany w interfejsie API
- Udostępniono interfejs
Condition, aby umożliwić niestandardowe warunki oczekiwania zamiast polegać wyłącznie na wbudowanych funkcjach wUntil, oraz zaktualizowano metodyUiDevice#waitiUiObject2#wait, aby akceptowały ten interfejs (27c0ea). - Dodano
UiObject2#scrollUntil, aby umożliwić przewijanie do momentu spełnienia warunku i osiągnięcie równości zUiScrollable(099d6e). - Dodaliśmy
UiDevice#setOrientationPortraitisetOrientationLandscape, aby ułatwić rotację na różnych typach urządzeń (e13cb7). - Dodano
UiObject2#setGestureMarginPercent, aby umożliwić ustawianie marginesów względem rozmiaru obiektu. (Ib8c77)
Poprawki błędów
- Naprawiono błąd, w którym metody
UiScrollableczasami używały nieprawidłowych współrzędnych w pakietach SDK w wersjach 18–22 (b53ece). - Rozwiązaliśmy problem z nieprawidłowym działaniem funkcji
UiObject2#setTexticlearTextpodczas modyfikowania tekstu w zestawach SDK w wersjach 18 i 19 (77e41d). - Rozwiązaliśmy problem z nieprawidłową kolejnością wykonywania
UiWatcher(c85f92). - Rozwiązaliśmy problem polegający na tym, że po zmianie orientacji urządzenia (c6cea0) obrót urządzenia mógł nie być jeszcze zakończony.
UiDevice - Poprawiona niezawodność długich kliknięć, przeciągnięć i szczypnięć (49572b, 3c619a).
Wersja 2.3.0-alpha02
11 stycznia 2023 r.
Publikacja androidx.test.uiautomator:uiautomator:2.3.0-alpha02 Wersja 2.3.0-alpha02 zawiera te zatwierdzenia.
Zmiany w interfejsie API
- Przeprojektowaliśmy rejestrowanie w całej bibliotece, aby dostarczać więcej informacji, ostrzegać o potencjalnych problemach i zwiększać spójność.
- Dodano
UiDevice#pressKeyCodes, aby obsługiwać jednoczesne naciskanie wielu klawiszy, np. naciśnięcie przycisków ZASILANIE i ZMNIEJSZANIE GŁOŚNOŚCI w celu zrobienia zrzutu ekranu (22e525). - Dodano
UiDevice#setCompressedLayoutHierarchyi wycofanoUiDevice#setCompressedLayoutHeirarchy, aby poprawić błąd w nazwie metody (4e2f65). - Oznaczono
UiAutomatorInstrumentationTestRunnerjako wycofany, ponieważ obsługuje wycofaneUiAutomatorTestCasei nie jest już potrzebny (be6c85). - Zaktualizowano opóźnienie między
UiObject2MotionEvents do dwukrotności częstotliwości odświeżania wyświetlacza, aby lepiej emulować gesty użytkownika (454450). - Dodano obsługę dopasowywania tekstu i opisu w wielu wierszach (1625e6, b/255787130).
Poprawki błędów
- Rozwiązano problem z sporadycznym zgłaszaniem błędu
StaleObjectExceptionpodczas wysyłania zapytań dotyczących obiektów lub oczekiwania na nie (4cbcc0). - Poprawiono wartości zwracane funkcji
UiScrollable#scrollToBeginning,scrollToEnd,flingToBeginningiflingToEnd, które nie wskazywały, czy osiągnięto początek lub koniec (d33e06). - Naprawiono metody
UiScrollable#scrollForwardiscrollBackward, które ignorowały skonfigurowany czas oczekiwania (29e4f3). - Naprawiono błąd polegający na tym, że konstruktor kopiujący
BySelectornie obsługiwał selektorów głębokości (6c7b91). - Poprawiono obsługę nieprawidłowych wartości procentowych w kolumnach
UiObject#pinchInipinchOut(01b973). - Rozwiązaliśmy rzadki problem, który powodował utratę obsługi wielu okien, jeśli podstawowe
UiAutomationpołączenie zostało zresetowane (1bb956).
Wersja 2.3.0-alpha01
7 września 2022 roku
Publikacja androidx.test.uiautomator:uiautomator:2.3.0-alpha01 Wersja 2.3.0-alpha01 zawiera te zatwierdzenia.
Zmiany w interfejsie API
- Dodano adnotacje dotyczące wartości null wszystkich metod publicznych.
- Przełączono wstrzykiwanie
MotionEventna asynchroniczne z krótkim opóźnieniem, aby zapewnić płynniejsze gestyUiObject2. - Skrócono interwał odpytywania podczas oczekiwania z 1000 ms do 100 ms.
- Zaktualizowano
UiDevice#wakeUpiUiDevice#sleep, aby używaćKEYCODE_WAKEUPiKEYCODE_SLEEPw celu obsługi urządzeń, które zastępują przycisk zasilania. - Dodaliśmy
UiObject2#getDisplayIdoraz obsługę wyszukiwania obiektów i zarządzania nimi na wielu wyświetlaczach. - Dodano metody
UiObject#clickiUiObject2#clickAndWaitdo klikania punktu za pomocą jego współrzędnych.
Poprawki błędów
- Rozwiązaliśmy problem, który powodował, że obliczenia rozmiaru wyświetlacza były czasami nieprawidłowe i mogły pomijać części ekranu, zwłaszcza w trybie wielu okien (Ifc016c).
- Poprawiono skalowanie zrzutów ekranu w
UiDevice#takeScreenshot(Id80ad6). - Poprawiliśmy niezawodność funkcji
Until.scrollFinishediUiObject2#scroll(I7b0595). - Naprawiono ostrzeżenia w trybie ścisłym
IncorrectContextUseViolation(Iffa6a0).