Uiautomator testen
Letzte Aktualisierung | Stabile Version | Releasekandidat | Beta-Ausgabe | Alpha-Release |
---|---|---|---|---|
26. Juni 2024 | 2.3.0 | - | - | 2.4.0-alpha01 |
Abhängigkeiten deklarieren
Wenn Sie eine Testabhängigkeit hinzufügen möchten, müssen Sie Ihrem Projekt das Maven-Repository von Google hinzufügen. Weitere Informationen finden Sie im Maven-Repository von Google.
Fügen Sie der Datei build.gradle
für Ihre Anwendung oder Ihr Modul die Abhängigkeiten für die Artefakte hinzu, die Sie benötigen:
Cool
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") }
Weitere Informationen zu Abhängigkeiten finden Sie unter Build-Abhängigkeiten hinzufügen.
Feedback
Dein Feedback hilft uns, Jetpack zu verbessern. Teilen Sie uns mit, wenn Sie neue Ausgaben entdecken oder Verbesserungsvorschläge für diese Bibliothek haben. Bitte sieh dir die vorhandenen Probleme in dieser Bibliothek an, bevor du eine neue erstellst. Sie können einem vorhandenen Problem Ihre Stimme hinzufügen, indem Sie auf die Sternschaltfläche klicken.
Weitere Informationen finden Sie in der Dokumentation zur Problemverfolgung.
Version 2.4
Version 2.4.0-alpha01
26. Juni 2024
androidx.test.uiautomator:uiautomator:2.4.0-alpha01
wurde veröffentlicht. Version 2.4.0-alpha01 enthält diese Commits.
API-Änderungen
Configurator#getKeyInjectionDelay
undsetKeyInjectionDelay
wurden eingestellt, da der Parameter jetzt nicht mehr verwendet wird, da Text immer direkt und nicht durch Drücken von Tasten eingeschleust wird. (I3bcc5)
Fehlerkorrekturen
- Die Verzögerung zwischen
UiObject2
Bewegungsereignissen wurde aktualisiert, um dynamische Aktualisierungsraten zu berücksichtigen (z.B. Smooth Display) (I43f12). - Weniger Unregelmäßigkeiten aufgrund von veralteten Bedienungshilfen-Knoten auf bestimmten Benutzeroberflächen, indem der Bedienungshilfen-Cache regelmäßig entwertet wurde (I3be25).
- Ein Problem mit
StaleObjectException
wurde behoben, das beim Aufrufen vontoString
oderhashCode
bei einem veraltetenUiObject2
aufgetreten ist. (I38ea1) - Die Leistung von
UiWatcher
wurde verbessert, indem unnötigewaitForIdle
-Aufrufe übersprungen wurden. (I8c65e) - Javadoc-Ungenauigkeiten wurden behoben, um insbesondere 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
wurde veröffentlicht. Version 2.3.0 enthält diese Commits.
Wichtige Änderungen seit Version 2.2.0
- Multi-Display-Unterstützung: Unterstützung für die Suche und Bearbeitung von Objekten auf mehreren Bildschirmen sowie
UiDevice
-Methoden zum Verwalten sekundärer Bildschirme (Ie6544, I912cd) wurde hinzugefügt. - Neue Selektoren:
By.displayId
wurde hinzugefügt, um Objekte nach ihrer Anzeige-ID auszuwählen (I1825b).By.hasParent
undBy.hasAncestor
wurden hinzugefügt, um Objekte entsprechend ihren übergeordneten Elementen auszuwählen (I93c36).- Es wurden
By.hint
-Methoden zur Auswahl von Objekten nach ihrem Hinweistext hinzugefügt (Idd345).
- Benutzerdefinierte Bedingungen: Es wurde eine
Condition
-Schnittstelle zur Unterstützung benutzerdefinierter Wartebedingungen bereitgestellt und entsprechendeUiDevice#wait
-,UiObject2#wait
- undUiObject2#scrollUntil
-Methoden (27c0ea, 099d6e) hinzugefügt. - Fehlerkorrekturen und Zuverlässigkeit
- Es wurde ein Problem behoben, bei dem die Berechnungen der Anzeigegröße gelegentlich falsch waren und Teile des Bildschirms ignorierten (Ifc016). Die in Tests verwendeten Koordinaten und Offsets müssen möglicherweise angepasst werden.
- Die
MotionEvent
-Injection wurde aktualisiert, um die Genauigkeit (678ca3) zu verbessern und Nutzergesten besser zu emulieren (454450). - Die Zuverlässigkeit von Scrollen (I7b059), Rotationen (c6cea0), langen Klicks (49572b), Pinches (3c619a) und mehr wurde verbessert.
Version 2.3.0-rc01
7. Februar 2024
androidx.test.uiautomator:uiautomator:2.3.0-rc01
wurde ohne Änderungen freigegeben. 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
wurde veröffentlicht. Version 2.3.0-beta01 enthält diese Commits.
API-Änderungen
- Die prozentbasierten Margenmethoden
UiObject2
wurden aus Konsistenzgründen insetGestureMarginPercentage
undsetGestureMarginsPercentage
umbenannt (I24435)
Fehlerkorrekturen
- Die Fehlermeldung, die angezeigt wird, wenn ein sekundärer Bildschirm 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
wurde veröffentlicht. Version 2.3.0-alpha05 enthält diese Commits.
API-Änderungen
UiObject2#getDrawingOrder
wurde hinzugefügt, um Informationen zur Zeichenreihenfolge (Z-Index) bereitzustellen. (I5dfa4)- Es wurden
UiDevice
-Methoden zum Abrufen, Festlegen, Einfrieren und Aufheben der Rotation von sekundären Bildschirmen hinzugefügt. (I912cd)
Fehlerkorrekturen
UiObject2#scrollUntil
wurde Wiederholungsversuch hinzugefügt, wenn das Ende des Scrollens nicht erkannt werden konnte (Ibac6f).- Ein Problem wurde behoben, bei dem
UiDevice
bei Neuerstellung eine veralteteInstrumentation
-Instanz verwendet hat (I18cae). - Die mögliche NPE wurde behoben, wenn die Anzeige-ID beim Dump von Knoten nicht ermittelt werden konnte (Icafcb).
- Es wurde eine Warnung hinzugefügt, die beim Klicken oder Scrollen bei nicht klickbaren/scrollbaren Objekten auftritt (I4a5d9).
- Die standardmäßige Scrollgeschwindigkeit von
UiObject2
wurde reduziert, um die Zuverlässigkeit zu verbessern (I5e071).
Version 2.3.0-alpha04
26. Juli 2023
androidx.test.uiautomator:uiautomator:2.3.0-alpha04
wurde veröffentlicht. Version 2.3.0-alpha04 enthält diese Commits.
API-Änderungen
By.hasParent
undBy.hasAncestor
wurden hinzugefügt, um das Suchen von Objekten gemäß ihren übergeordneten Elementen zu unterstützen (I93c36).- Es wurden
UiObject2#getHint
zum Abrufen des Hinweistexts eines Objekts undBy.hint
-Methoden zur Auswahl von Objekten gemäß ihrem Hinweistext hinzugefügt (Idd345). By.displayId
wurde hinzugefügt, um die Auswahl von Objekten entsprechend dem Bildschirm zu unterstützen, in dem sie angezeigt werden (I1825b).- Die Methoden
UiDevice#getDisplayHeight(int)
undUiDevice#getDisplayWidth(int)
wurden hinzugefügt, um die Abmessungen eines Displays anhand der ID zu ermitteln (Ie6544). - Die Methoden
wait(SearchCondition, long)
undwait(UiObject2Condition, long)
wurden für die Abwärtskompatibilität wieder hinzugefügt (Iebfda). - „
UiDevice#executeShellCommand
“ wurde zu „öffentlich“ geändert, aber nicht mehr als ausgeblendet (Ic48a1).
Fehlerkorrekturen
MotionEvent
-Injection wurde aktualisiert, um Schwachstellen zu reduzieren, da die Genauigkeit der Touch-Geste Vorrang vor der Geschwindigkeit hat (678ca3).- Methoden mit hohem Ressourcenverbrauch wurden um ein Tracing zur Identifizierung von Leistungsengpässen ergänzt (d17de3).
- Ein Wiederholungsmechanismus zum Initiieren einer UiAutomation-Verbindung (048caf) wurde hinzugefügt.
- Eine mögliche NPE von Null-Knoten in
UiDevice#dumpWindowHierarchy
(b725eb) wurde behoben. - Unerwartete Fehler bei Abfragen oder beim Ausführen auf privaten Bildschirmen (985db6, 7053d4) wurden behoben.
Version 2.3.0-alpha03
19. April 2023
androidx.test.uiautomator:uiautomator:2.3.0-alpha03
wurde veröffentlicht. Version 2.3.0-alpha03 enthält diese Commits.
API-Änderungen
- Eine
Condition
-Schnittstelle wurde eingeführt, um benutzerdefinierte Wartebedingungen zu ermöglichen, anstatt sich ausschließlich auf die integriertenUntil
zu verlassen. Außerdem wurden die MethodenUiDevice#wait
undUiObject2#wait
aktualisiert, um diese Schnittstelle zu akzeptieren (27c0ea). UiObject2#scrollUntil
wurde hinzugefügt, um das Scrollen zu unterstützen, bis eine Bedingung erfüllt ist, und um eine Parität mitUiScrollable
zu erreichen (099d6e).UiDevice#setOrientationPortrait
undsetOrientationLandscape
wurden hinzugefügt, um die Rotation zwischen Gerätetypen (e13cb7) zu erleichtern.UiObject2#setGestureMarginPercent
wurde hinzugefügt, um das Festlegen von Rändern relativ zur Objektgröße zu unterstützen. (Ib8c77)
Fehlerkorrekturen
- Fehler bei
UiScrollable
-Methoden behoben, bei denen in den SDKs 18 bis 22 (b53ece) gelegentlich ungültige Koordinaten verwendet wurden. - Das Problem, dass bei
UiObject2#setText
undclearText
Text in SDKs 18 und 19 (77e41d) nicht geändert werden konnte, wurde behoben. - Ein Problem wurde behoben, durch das
UiWatcher
s nicht in der richtigen Reihenfolge ausgeführt wurden (c85f92). - Ein Problem wurde behoben, durch das die Gerätedrehung nach einer Änderung der
UiDevice
-Ausrichtung (c6cea0) möglicherweise noch nicht abgeschlossen war. - Verbesserte Zuverlässigkeit bei langen Klicks, Ziehbewegungen und Fingern (49572b, 3c619a).
Version 2.3.0-alpha02
11. Januar 2023
androidx.test.uiautomator:uiautomator:2.3.0-alpha02
wurde veröffentlicht. Version 2.3.0-alpha02 enthält diese Commits.
API-Änderungen
- Überarbeitetes Logging in der gesamten Bibliothek, um mehr Informationen bereitzustellen, vor möglichen Problemen zu warnen und die Konsistenz zu verbessern.
UiDevice#pressKeyCodes
wurde hinzugefügt, um das gleichzeitige Drücken mehrerer Tasten zu unterstützen, z.B. das Drücken der Ein/Aus-Taste und der Leisertaste, um einen Screenshot zu erstellen (22e525).UiDevice#setCompressedLayoutHierarchy
wurde hinzugefügt undUiDevice#setCompressedLayoutHeirarchy
wurde verworfen, um einen Tippfehler im Methodennamen zu korrigieren (4e2f65).UiAutomatorInstrumentationTestRunner
wurde als veraltet gekennzeichnet, da damit eingestellteUiAutomatorTestCase
s verarbeitet werden und nicht mehr erforderlich sind (be6c85).- Die Verzögerung zwischen
UiObject2
MotionEvent
s wurde auf die doppelte Aktualisierungsrate des Displays aktualisiert, um Nutzergesten besser zu emulieren (454450). - Der Abgleich von mehrzeiligen Texten und Beschreibungen wird jetzt unterstützt (1625e6, b/255787130).
Fehlerkorrekturen
- Behebung des Problems, dass
StaleObjectException
s gelegentlich beim Abfragen oder Warten auf Objekte ausgegeben wurden (4cbcc0). - Die Rückgabewerte von
UiScrollable#scrollToBeginning
,scrollToEnd
,flingToBeginning
undflingToEnd
, die angeben, ob Anfang/Ende erreicht wurde, wurden korrigiert (d33e06). - Fehler bei den Methoden
UiScrollable#scrollForward
undscrollBackward
behoben, bei denen das konfigurierte Zeitlimit (29e4f3) ignoriert wurde. - Der
BySelector
-Kopierkonstruktor, der keine Tiefenauswahlen verarbeitet, wurde behoben (6c7b91). - Die Verarbeitung ungültiger Prozentwerte in
UiObject#pinchIn
undpinchOut
(01b973) wurde korrigiert. - Ein seltenes Problem wurde behoben, bei dem der Mehrfenstermodus nach dem Zurücksetzen der zugrunde liegenden
UiAutomation
-Verbindung nicht mehr unterstützt wurde (1bb956).
Version 2.3.0-alpha01
7. September 2022
androidx.test.uiautomator:uiautomator:2.3.0-alpha01
wurde veröffentlicht. Version 2.3.0-alpha01 enthält diese Commits.
API-Änderungen
- Der Nullwert aller öffentlichen Methoden wurde annotiert.
MotionEvent
-Injection wurde mit kurzer Verzögerung auf asynchroneUiObject2
-Touch-Gesten umgestellt.- Das Abfrageintervall beim Warten wurde von 1.000 ms auf 100 ms verkürzt.
UiDevice#wakeUp
undUiDevice#sleep
wurden aktualisiert, sodassKEYCODE_WAKEUP
undKEYCODE_SLEEP
zur Unterstützung von Geräten verwendet werden, bei denen die Ein/Aus-Taste überschrieben wird.UiObject2#getDisplayId
und Unterstützung für die Suche und Verwaltung von Objekten auf mehreren Bildschirmen wurden hinzugefügt.- Die Methoden
UiObject#click
undUiObject2#clickAndWait
zum Klicken auf einen Punkt mithilfe seiner Koordinaten wurden hinzugefügt.
Fehlerkorrekturen
- Es wurde ein Problem behoben, bei dem die Berechnungen der Anzeigegröße gelegentlich falsch waren und Teile des Bildschirms ignorierten, insbesondere im Mehrfenstermodus (Ifc016c).
- Die Skalierung von Screenshots in
UiDevice#takeScreenshot
(Id80ad6) wurde korrigiert. - Die Zuverlässigkeit von
Until.scrollFinished
undUiObject2#scroll
wurde verbessert (I7b0595). IncorrectContextUseViolation
-Warnungen im strikten Modus (Iffa6a0) wurden behoben.