Uiautomator testen
| Letzte Aktualisierung | Stabile Release | Releasekandidat | Beta-Release | Alpha-Release |
|---|---|---|---|---|
| 17. Juni 2026 | 2.3.0 | 2.4.0-rc01 | - | - |
Abhängigkeiten deklarieren
Für eine Abhängigkeit von „test“ musst du deinem Projekt das Google Maven-Repository hinzufügen. Weitere Informationen finden Sie im Maven-Repository von Google.
Fügen Sie die Abhängigkeiten für die benötigten Artefakte der Datei build.gradle für Ihre App oder Ihr Modul hinzu:
Cool
dependencies { // Use to implement UIAutomator tests androidTestImplementation "androidx.test.uiautomator:uiautomator:2.4.0-rc01" }
Kotlin
dependencies { // Use to implement UIAutomator tests androidTestImplementation("androidx.test.uiautomator:uiautomator:2.4.0-rc01") }
Weitere Informationen zu Abhängigkeiten finden Sie unter Build-Abhängigkeiten hinzufügen.
Feedback
Ihr Feedback hilft uns, Jetpack zu verbessern. Wenn Sie neue Probleme entdecken oder Ideen zur Verbesserung dieser Bibliothek haben, lassen Sie es uns wissen. Bevor Sie ein neues Problem erstellen, sollten Sie sich jedoch die bereits gemeldeten Probleme in dieser Bibliothek ansehen. Wenn Sie sich einer Problemmeldung anschließen möchten, klicken Sie auf den Button mit dem Stern.
Weitere Informationen finden Sie in der Dokumentation zum Issue Tracker.
Testen der Uiautomator-Shell Version 1.0
Version 1.0.0-alpha03
3. Dezember 2025
androidx.test.uiautomator:uiautomator-shell:1.0.0-alpha03 ist veröffentlicht. Version 1.0.0-alpha03 enthält diese Commits.
API-Änderungen
startActivitywurde in „Warten auf neues Fenster“ geändert (I35da6, b/440021797)screenSizePixelinRecorderCommandsaktualisiert (If558c, b/429173157)
Version 1.0.0-alpha02
13. August 2025
androidx.test.uiautomator:uiautomator-shell:1.0.0-alpha02 ist veröffentlicht. Version 1.0.0-alpha02 enthält diese Commits.
Version 1.0.0-alpha01
18. Juni 2025
androidx.test.uiautomator:uiautomator-shell:1.0.0-alpha01 ist veröffentlicht. Version 1.0.0-alpha01 enthält diese Commits.
Neue Funktionen
- Erste Alphaversion der ui-automator-Shell-Bibliothek zum Ausführen von Shell-Befehlen als Shell-Nutzer. Mit dieser Bibliothek können Sie stdout und stderr lesen und in stdin eines Shell-Prozesses schreiben, der von Shell gestartet wurde. De facto wird
UiAutomation#executeShellCommandRwe, das in API 34 eingeführt wurde, damit zurückportiert.
Version 2.4
Version 2.4.0-rc01
17. Juni 2026
androidx.test.uiautomator:uiautomator:2.4.0-rc01, androidx.test.uiautomator:uiautomator-shell:2.4.0-rc01 und androidx.test.uiautomator:uiautomator-shell-android:2.4.0-rc01 sind veröffentlicht. Version 2.4.0-rc01 enthält diese Commits.
Version 2.4.0-beta02
11. März 2026
androidx.test.uiautomator:uiautomator:2.4.0-beta02 und androidx.test.uiautomator:uiautomator-shell:2.4.0-beta02 sind veröffentlicht. Version 2.4.0-beta02 enthält diese Commits.
Fehlerkorrekturen
- Der Fehler, dass
UiObject2#scrollToElementOrNulleine Ausnahme auslöst, anstattnullzurückzugeben, wurde behoben. Außerdem wurde der Rückgabetyp aktualisiert (If0109, b/479892735).
Version 2.4.0-beta01
11. Februar 2026
androidx.test.uiautomator:uiautomator:2.4.0-beta01 und androidx.test.uiautomator:uiautomator-shell:2.4.0-beta01 sind veröffentlicht. Version 2.4.0-beta01 enthält diese Commits.
API-Änderungen
- Machen Sie zustandslose Befehle zu Singletons. (I3394c, b/429173157)
- Aktualisieren Sie die
RecorderCommandsAPI. (Ie09e8, b/429173157) - Vereinfachen Sie die
RecorderCommandsAPI, damit sie einen klar definierten Lebenszyklus hat. (I30f89, b/444305673)
Version 2.4.0-alpha07
3. Dezember 2025
androidx.test.uiautomator:uiautomator:2.4.0-alpha07 ist veröffentlicht. Version 2.4.0-alpha07 enthält diese Commits.
API-Änderungen
- „
startActivity“ in „wait for new window“ geändert. Dadurch wird der Start im Allgemeinen synchronisiert und zukünftige Versionen von Macrobenchmark können die Erkennung des Startabschlusses konfigurieren. (I35da6, Id6e6f, b/440021797) - Die API ohne expliziten Paketnamen wurde aus
UiAutomatorTestScopeentfernt. (I8c285, b/413417205)
Version 2.4.0-alpha06
13. August 2025
androidx.test.uiautomator:uiautomator:2.4.0-alpha06 ist veröffentlicht. Version 2.4.0-alpha06 enthält diese Commits.
Neue Funktionen
- Es wurden fensterbasierte APIs für verbesserte Tests im Mehrfenstermodus hinzugefügt.
UiDevice#findWindowkann jetzt verwendet werden, um ein bestimmtesUiWindowanhand einesByWindowSelectorzu finden, das mitBy.Window-Factory-Methoden erstellt wurde. (I359c4, I40528, I8c963)
Version 2.4.0-alpha05
18. Juni 2025
androidx.test.uiautomator:uiautomator:2.4.0-alpha05 ist veröffentlicht. Version 2.4.0-alpha05 enthält diese Commits.
API-Änderungen
UiObject2#waitForStablewurde als Verknüpfung fürUiObject2#accessibilityNodeInfo#waitForStable()hinzugefügt
Version 2.4.0-alpha04
4. Juni 2025
androidx.test.uiautomator:uiautomator:2.4.0-alpha04 ist veröffentlicht. Version 2.4.0-alpha04 enthält diese Commits.
API-Änderungen
onViewwurde inonElementumbenannt, um zu verdeutlichen, dass es mit Compose funktioniert (I53a3b, b/419006806)
Fehlerkorrekturen
- Fehler bei
waitForStableInActiveWindowbeheben (290457f1, b/420349130)
Version 2.4.0-alpha03
20. Mai 2025
androidx.test.uiautomator:uiautomator:2.4.0-alpha03 ist veröffentlicht. Version 2.4.0-alpha03 enthält diese Commits.
Fehlerkorrekturen
waitForStableInActiveWindowlöst in einigen Fällen keine NPE mehr aus (Ibf50f, b/417046391).
Version 2.4.0-alpha02
7. Mai 2025
androidx.test.uiautomator:uiautomator:2.4.0-alpha02 ist veröffentlicht. Version 2.4.0-alpha02 enthält diese Commits.
Neue Funktionen
- Erste Version der neuen
Uiautomator-API.UiAutomatorTestScopekann über die FactoryuiAutomatorerstellt werden, die Zugriff auf die neuenonView-APIs bietet. - Erste Lint-Regeln, um vor der Verwendung von
AccessibilityNodeInfo#getTextzu warnen und die Verwendung vontextAsStringvorzuschlagen.
API-Änderungen
Configurator#setDefaultDisplayIdwurde hinzugefügt, um eine Display-ID festzulegen, auf die alle Suchanfragen beschränkt werden (Icdf17).Searchable(Schnittstelle, die vonUiDeviceundUiObject2gemeinsam genutzt wird) wurde aus Gründen der Benutzerfreundlichkeit in „öffentlich“ geändert (I67f18).
Fehlerkorrekturen
- Die Verarbeitung von Meta-Tasten in
UiDevice#pressKeyCodeswurde korrigiert. (I73f80). UiDevice#getWindowRootswurde aktualisiert, sodass immer Ablagen in Z-Reihenfolge zurückgegeben werden (I87426).- Ein Problem wurde behoben, bei dem bestimmte Gesten unvollständig waren (I60dd3, If4edd).
- Ein seltener Fall einer Endlosschleife beim Aufrufen von
UiDevice#scrollUntilwurde behoben (I39989).
Version 2.4.0-alpha01
26. Juni 2024
androidx.test.uiautomator:uiautomator:2.4.0-alpha01 ist veröffentlicht. Version 2.4.0-alpha01 enthält diese Commits.
API-Änderungen
- Die Parameter
Configurator#getKeyInjectionDelayundsetKeyInjectionDelaysind jetzt veraltet, da Text immer direkt eingefügt wird und nicht mehr über Tastendrücke. (I3bcc5).
Fehlerkorrekturen
- Die Verzögerung zwischen
UiObject2-Bewegungsereignissen wurde aktualisiert, um dynamische Aktualisierungsraten (z.B. Smooth Display) zu berücksichtigen (I43f12). - Die Instabilität aufgrund veralteter Bedienungshilfenknoten in bestimmten Benutzeroberflächen wurde durch regelmäßiges Ungültigmachen des Bedienungshilfencaches reduziert (I3be25).
- Es wurden
StaleObjectExceptionbehoben, die beim Aufrufen vontoStringoderhashCodefür einen veraltetenUiObject2aufgetreten sind. (I38ea1). - Die Leistung von
UiWatcherwurde verbessert, indem unnötigewaitForIdle-Aufrufe übersprungen werden. (I8c65e). - Fehler im Javadoc behoben, insbesondere um zu verdeutlichen, wann die einzelnen
Configurator-Parameter verwendet werden. (Ie10b1, I71631).
Version 2.3.0
Version 2.3.0
21. Februar 2024
androidx.test.uiautomator:uiautomator:2.3.0 ist veröffentlicht. Version 2.3.0 enthält diese Commits.
Wichtige Änderungen seit Version 2.2.0
- Unterstützung für mehrere Displays: Es wurde Unterstützung für das Suchen und Bearbeiten von Objekten auf mehreren Displays sowie
UiDevice-Methoden zum Verwalten sekundärer Displays hinzugefügt (Ie6544, I912cd). - Neue Selektoren:
By.displayIdwurde hinzugefügt, um Objekte anhand ihrer Anzeige-ID auszuwählen (I1825b).- Die Funktionen
By.hasParentundBy.hasAncestorwurden hinzugefügt, um Objekte anhand ihrer übergeordneten Elemente auszuwählen (I93c36). - Es wurden
By.hint-Methoden hinzugefügt, mit denen Objekte anhand ihres Hinweistextes ausgewählt werden können (Idd345).
- Benutzerdefinierte Bedingungen: Eine
Condition-Schnittstelle zur Unterstützung benutzerdefinierter Wartebedingungen wurde eingeführt und entsprechendeUiDevice#wait-,UiObject2#wait- undUiObject2#scrollUntil-Methoden wurden hinzugefügt (27c0ea, 099d6e). - Fehlerkorrekturen und Zuverlässigkeit
- Ein Problem wurde behoben, bei dem die Berechnungen der Displaygröße gelegentlich falsch waren und möglicherweise Teile des Bildschirms ignoriert wurden (Ifc016). Koordinaten und Offsets, die in Tests verwendet werden, müssen möglicherweise angepasst werden.
- Die
MotionEvent-Einfügung wurde aktualisiert, um die Genauigkeit zu verbessern (678ca3) und Nutzergesten besser zu emulieren (454450). - Die Zuverlässigkeit von Scrollen (I7b059), Drehen (c6cea0), langen Klicks (49572b) und Pinch-Gesten (3c619a) wurde verbessert.
Version 2.3.0-rc01
7. Februar 2024
androidx.test.uiautomator:uiautomator:2.3.0-rc01 wird ohne Änderungen veröffentlicht. Version 2.3.0-rc01 enthält diese Commits.
Version 2.3.0-beta01
13. Dezember 2023
androidx.test.uiautomator:uiautomator:2.3.0-beta01 ist veröffentlicht. Version 2.3.0-beta01 enthält diese Commits.
API-Änderungen
- Die prozentualen Margenmethoden
UiObject2wurden aus Konsistenzgründen insetGestureMarginPercentageundsetGestureMarginsPercentageumbenannt (I24435).
Fehlerkorrekturen
- Der Fehler, der ausgegeben wird, wenn ein sekundäres Display nicht gefunden wird oder nicht zugänglich ist, wurde verbessert (116b23).
Version 2.3.0-alpha05
1. November 2023
androidx.test.uiautomator:uiautomator:2.3.0-alpha05 ist veröffentlicht. Version 2.3.0-alpha05 enthält diese Commits.
API-Änderungen
UiObject2#getDrawingOrderwurde hinzugefügt, um Informationen zur Zeichenreihenfolge (Z-Index) verfügbar zu machen. (I5dfa4).- Es wurden
UiDevice-Methoden zum Abrufen, Festlegen, Einfrieren und Aufheben des Einfrierens der Drehung sekundärer Displays hinzugefügt. (I912cd).
Fehlerkorrekturen
- Wiederholungsversuch für
UiObject2#scrollUntilhinzugefügt, wenn das Ende des Scrollens nicht erkannt werden konnte (Ibac6f). - Ein Problem wurde behoben, bei dem
UiDeviceeine alteInstrumentation-Instanz verwendet hat, wenn sie neu erstellt wurde (I18cae). - Mögliche NullPointerException behoben, wenn die Display-ID beim Ausgeben von Knoten nicht ermittelt werden kann (Icafcb).
- Es wurde eine Warnung hinzugefügt, wenn auf nicht klickbare/scrollbare Objekte geklickt oder gescrollt wird (I4a5d9).
- Die standardmäßige
UiObject2-Scrollgeschwindigkeit wurde verringert, um die Zuverlässigkeit zu verbessern (I5e071).
Version 2.3.0-alpha04
26. Juli 2023
androidx.test.uiautomator:uiautomator:2.3.0-alpha04 ist veröffentlicht. Version 2.3.0-alpha04 enthält diese Commits.
API-Änderungen
By.hasParentundBy.hasAncestorwurden hinzugefügt, um das Suchen von Objekten anhand ihrer übergeordneten Elemente zu unterstützen (I93c36).UiObject2#getHintwurde hinzugefügt, um den Hinweistext eines Objekts abzurufen, undBy.hint-Methoden, um Objekte anhand ihres Hinweistexts auszuwählen (Idd345).By.displayIdwurde hinzugefügt, um die Auswahl von Objekten entsprechend dem Display zu unterstützen, auf dem sie sich befinden (I1825b).- Die Methoden
UiDevice#getDisplayHeight(int)undUiDevice#getDisplayWidth(int)wurden hinzugefügt, um die Abmessungen eines Displays anhand seiner ID (Ie6544) zu ermitteln. - Die Methoden
wait(SearchCondition, long)undwait(UiObject2Condition, long)wurden zur Abwärtskompatibilität wieder hinzugefügt (Iebfda). UiDevice#executeShellCommandwurde auf „öffentlich“ geändert, aber als nicht empfehlenswert markiert, anstatt ausgeblendet zu werden (Ic48a1).
Fehlerkorrekturen
- Die
MotionEvent-Injektion wurde aktualisiert, um die Instabilität zu verringern. Dabei wird die Genauigkeit von Gesten gegenüber der Geschwindigkeit priorisiert (678ca3). - Tracing für ressourcenintensive Methoden hinzugefügt, um Leistungsengpässe zu erkennen (d17de3).
- Es wurde ein Wiederholungsmechanismus beim Initiieren einer UiAutomation-Verbindung hinzugefügt (048caf).
- Ein möglicher NPE-Fehler durch Nullknoten in
UiDevice#dumpWindowHierarchywurde behoben (b725eb). - Es wurden unerwartete Fehler beim Abfragen oder Bearbeiten privater Displays behoben (985db6, 7053d4).
Version 2.3.0-alpha03
19. April 2023
androidx.test.uiautomator:uiautomator:2.3.0-alpha03 ist veröffentlicht. Version 2.3.0-alpha03 enthält diese Commits.
API-Änderungen
- Eine
Condition-Schnittstelle wurde bereitgestellt, um benutzerdefinierte Wartebedingungen zu ermöglichen, anstatt sich nur auf die integrierten Funktionen inUntilzu verlassen. Außerdem wurden die MethodenUiDevice#waitundUiObject2#waitaktualisiert, um diese Schnittstelle zu akzeptieren (27c0ea). UiObject2#scrollUntilwurde hinzugefügt, um das Scrollen bis zum Erfüllen einer Bedingung zu unterstützen und Parität mitUiScrollablezu erreichen (099d6e).UiDevice#setOrientationPortraitundsetOrientationLandscapewurden hinzugefügt, um Rotationen über verschiedene Gerätetypen hinweg zu ermöglichen (e13cb7).UiObject2#setGestureMarginPercentwurde hinzugefügt, um das Festlegen von Rändern relativ zur Objektgröße zu unterstützen. (Ib8c77)
Fehlerkorrekturen
- Die
UiScrollable-Methoden haben gelegentlich ungültige Koordinaten auf SDKs 18 bis 22 verwendet (b53ece). - Die Funktionen
UiObject2#setTextundclearTextkonnten Text in SDKs 18 und 19 nicht ändern. Das Problem wurde behoben (77e41d). - Es wurde ein Fehler behoben, durch den
UiWatchernicht in der richtigen Reihenfolge ausgeführt wurden (c85f92). - Ein Problem wurde behoben, bei dem die Geräteausrichtung nach einer Änderung der Ausrichtung (c6cea0) möglicherweise noch nicht abgeschlossen war.
UiDevice - Die Zuverlässigkeit von Langklicks, Ziehen und Auf- und Zuziehen wurde verbessert (49572b, 3c619a).
Version 2.3.0-alpha02
11. Januar 2023
androidx.test.uiautomator:uiautomator:2.3.0-alpha02 ist veröffentlicht. Version 2.3.0-alpha02 enthält diese Commits.
API-Änderungen
- Das Logging in der gesamten Bibliothek wurde überarbeitet, um mehr Informationen bereitzustellen, vor möglichen Problemen zu warnen und die Konsistenz zu verbessern.
UiDevice#pressKeyCodeswurde hinzugefügt, um das gleichzeitige Drücken mehrerer Tasten zu unterstützen, z.B. das Drücken von POWER und VOLUME_DOWN zum Erstellen eines Screenshots (22e525).UiDevice#setCompressedLayoutHierarchywurde hinzugefügt undUiDevice#setCompressedLayoutHeirarchywurde eingestellt, um einen Tippfehler im Methodennamen zu korrigieren (4e2f65).UiAutomatorInstrumentationTestRunnerwurde als veraltet markiert, da es veralteteUiAutomatorTestCases verarbeitet und nicht mehr erforderlich ist (be6c85).- Die Verzögerung zwischen
UiObject2MotionEvents wurde auf das Doppelte der Display-Aktualisierungsrate aktualisiert, um Nutzergesten besser zu emulieren (454450). - Unterstützung für mehrzeiligen Text und den Abgleich von Beschreibungen hinzugefügt (1625e6, b/255787130).
Fehlerkorrekturen
- Es wurde ein Problem behoben, durch das beim Abfragen oder Warten auf Objekte gelegentlich
StaleObjectExceptions ausgelöst wurden (4cbcc0). - Die Rückgabewerte von
UiScrollable#scrollToBeginning,scrollToEnd,flingToBeginningundflingToEndgeben nicht mehr an, ob der Anfang oder das Ende erreicht wurde (d33e06). - Die Methoden
UiScrollable#scrollForwardundscrollBackwardhaben das konfigurierte Zeitlimit ignoriert (29e4f3). - Der
BySelector-Kopierkonstruktor verarbeitet jetzt auch Tiefenauswahlen (6c7b91). - Die Verarbeitung ungültiger Prozentwerte in
UiObject#pinchInundpinchOutwurde korrigiert (01b973). - Ein seltenes Problem wurde behoben, bei dem die Unterstützung für mehrere Fenster verloren ging, wenn die zugrunde liegende
UiAutomation-Verbindung zurückgesetzt wurde (1bb956).
Version 2.3.0-alpha01
7. September 2022
androidx.test.uiautomator:uiautomator:2.3.0-alpha01 ist veröffentlicht. Version 2.3.0-alpha01 enthält diese Commits.
API-Änderungen
- Die Nullable-Eigenschaft aller öffentlichen Methoden wurde annotiert.
- Die
MotionEvent-Einfügung wurde auf asynchron mit einer kurzen Verzögerung umgestellt, umUiObject2-Gesten flüssiger zu gestalten. - Das Abfrageintervall während des Wartens wurde von 1.000 ms auf 100 ms reduziert.
UiDevice#wakeUpundUiDevice#sleepwurden aktualisiert, umKEYCODE_WAKEUPundKEYCODE_SLEEPzu verwenden, um Geräte zu unterstützen, die die Ein/Aus-Taste überschreiben.UiObject2#getDisplayIdwurde hinzugefügt und es wird unterstützt, Objekte auf mehreren Displays zu finden und zu verwalten.- Die Methoden
UiObject#clickundUiObject2#clickAndWaitzum Klicken auf einen Punkt anhand seiner Koordinaten wurden hinzugefügt.
Fehlerkorrekturen
- Ein Problem wurde behoben, bei dem die Berechnungen der Displaygröße gelegentlich falsch waren und möglicherweise Teile des Bildschirms ignoriert wurden, insbesondere im Mehrfenstermodus (Ifc016c).
- Die Skalierung von Screenshots in
UiDevice#takeScreenshotwurde korrigiert (Id80ad6). - Die Zuverlässigkeit von
Until.scrollFinishedundUiObject2#scrollwurde verbessert (I7b0595). - Es wurden Probleme mit Warnungen im strikten Modus
IncorrectContextUseViolationbehoben (Iffa6a0).