בדיקת Uiautomator
| העדכון האחרון | גרסה יציבה | גרסה מועמדת להפצה | גרסת בטא | גרסת אלפא |
|---|---|---|---|---|
| 1 ביולי 2026 | 2.4.0 | - | - | - |
הצהרה על יחסי תלות
כדי להוסיף תלות בבדיקה, צריך להוסיף את מאגר Google Maven לפרויקט. מידע נוסף זמין במאמר בנושא מאגר Maven של Google.
אתם יכולים להוסיף את יחסי התלות של הארטיפקטים שאתם צריכים בקובץ build.gradle של האפליקציה או המודול:
Groovy
dependencies { // Use to implement UIAutomator tests androidTestImplementation "androidx.test.uiautomator:uiautomator:2.4.0" }
Kotlin
dependencies { // Use to implement UIAutomator tests androidTestImplementation("androidx.test.uiautomator:uiautomator:2.4.0") }
מידע נוסף זמין במאמר הוספת יחסי תלות ב-build.
משוב
המשוב שלכם עוזר לנו לשפר את Jetpack. נשמח לדעת אם גיליתם בעיות חדשות או אם יש לכם רעיונות איך לשפר את הספרייה הזו. כדאי לעיין בבעיות הידועות בספרייה הזו לפני שמדווחים על בעיה. כדי להוסיף הצבעה בדיווח על בעיה קיימת, לוחצים על כפתור הכוכב.
מידע נוסף זמין במאמרי העזרה בנושא Issue Tracker.
בדיקת Uiautomator Shell גרסה 1.0
גרסה 1.0.0-alpha03
3 בדצמבר 2025
androidx.test.uiautomator:uiautomator-shell:1.0.0-alpha03 מופץ. גרסה 1.0.0-alpha03 מכילה את השמירות האלה.
שינויים ב-API
- השתנה
startActivitywait ל-wait for new window (I35da6, b/440021797) - העדכון בוצע בתאריך
screenSizePixelב-RecorderCommands(If558c, b/429173157)
גרסה 1.0.0-alpha02
13 באוגוסט 2025
androidx.test.uiautomator:uiautomator-shell:1.0.0-alpha02 מופץ. גרסה 1.0.0-alpha02 מכילה את השמירות האלה.
גרסה 1.0.0-alpha01
18 ביוני 2025
androidx.test.uiautomator:uiautomator-shell:1.0.0-alpha01 מופץ. גרסה 1.0.0-alpha01 מכילה את השמירות האלה.
תכונות חדשות
- גרסת האלפא הראשונה של ספריית ui-automator shell להרצת פקודות shell כמשתמש shell. הספרייה הזו מאפשרת לקרוא את stdout, stderr ולכתוב ב-stdin של תהליך sh שהופעל על ידי shell. בפועל, הוא מבצע backport של
UiAutomation#executeShellCommandRweשהוצג ב-API 34.
גרסה 2.4
גרסה 2.4.0
1 ביולי 2026
התכונות androidx.test.uiautomator:uiautomator:2.4.0, androidx.test.uiautomator:uiautomator-shell:2.4.0 וגם androidx.test.uiautomator:uiautomator-shell-android:2.4.0 מושקות. גרסה 2.4.0 מכילה את השמירות האלה.
שינויים חשובים מאז גרסה 2.3.0:
גרסה 2.4.0-rc01
17 ביוני 2026
התכונות androidx.test.uiautomator:uiautomator:2.4.0-rc01, androidx.test.uiautomator:uiautomator-shell:2.4.0-rc01 וגם androidx.test.uiautomator:uiautomator-shell-android:2.4.0-rc01 מושקות. גרסה 2.4.0-rc01 מכילה את השמירות האלה.
גרסה 2.4.0-beta02
11 במרץ 2026
androidx.test.uiautomator:uiautomator:2.4.0-beta02 וגם androidx.test.uiautomator:uiautomator-shell:2.4.0-beta02 מופצים. גרסה 2.4.0-beta02 מכילה את השמירות האלה.
תיקוני באגים
- תוקנה הבעיה שבה הפונקציה
UiObject2#scrollToElementOrNullזורקת במקום להחזירnull, וסוג ההחזרה שלה עודכן (If0109, b/479892735)
גרסה 2.4.0-beta01
11 בפברואר 2026
androidx.test.uiautomator:uiautomator:2.4.0-beta01 וגם androidx.test.uiautomator:uiautomator-shell:2.4.0-beta01 מופצים. גרסה 2.4.0-beta01 מכילה את השמירות האלה.
שינויים ב-API
- הופכים פקודות ללא מצב לסינגלטונים. (I3394c, b/429173157)
- מעדכנים את ה-API של
RecorderCommands. (Ie09e8, b/429173157) - לפשט את ה-API
RecorderCommandsכדי שיהיה לו מחזור חיים מוגדר היטב. (I30f89, b/444305673)
גרסה 2.4.0-alpha07
3 בדצמבר 2025
androidx.test.uiautomator:uiautomator:2.4.0-alpha07 מופץ. גרסה 2.4.0-alpha07 מכילה את השמירות האלה.
שינויים ב-API
- הפונקציה
startActivitywait שונתה ל-wait for new window. כך ההשקה בדרך כלל סינכרונית, וגרסאות עתידיות של Macrobenchmark יוכלו להגדיר זיהוי של השלמת ההשקה. (I35da6, Id6e6f, b/440021797) - הוסר api ללא שם חבילה מפורש ב-
UiAutomatorTestScope. (I8c285, b/413417205)
גרסה 2.4.0-alpha06
13 באוגוסט 2025
androidx.test.uiautomator:uiautomator:2.4.0-alpha06 מופץ. גרסה 2.4.0-alpha06 מכילה את השמירות האלה.
תכונות חדשות
- הוספנו ממשקי API מבוססי-חלונות לשיפור הבדיקות של ריבוי חלונות, כלומר עכשיו אפשר להשתמש ב-
UiDevice#findWindowכדי למצואUiWindowספציפי לפיByWindowSelectorשנבנה באמצעות שיטות ליצירת אובייקטים (factory methods) שלBy.Window. (I359c4, I40528, I8c963)
גרסה 2.4.0-alpha05
18 ביוני 2025
androidx.test.uiautomator:uiautomator:2.4.0-alpha05 מופץ. גרסה 2.4.0-alpha05 מכילה את השמירות האלה.
שינויים ב-API
- נוסף קיצור דרך ל-
UiObject2#waitForStableבשםUiObject2#accessibilityNodeInfo#waitForStable()
גרסה 2.4.0-alpha04
4 ביוני 2025
androidx.test.uiautomator:uiautomator:2.4.0-alpha04 מופץ. גרסה 2.4.0-alpha04 מכילה את השמירות האלה.
שינויים ב-API
- השם של
onViewשונה ל-onElementכדי להבהיר שהוא פועל עם כתיבת מוזיקה (I53a3b, b/419006806)
תיקוני באגים
- תיקון
waitForStableInActiveWindow(290457f1, b/420349130)
גרסה 2.4.0-alpha03
20 במאי 2025
androidx.test.uiautomator:uiautomator:2.4.0-alpha03 מופץ. גרסה 2.4.0-alpha03 מכילה את השמירות האלה.
תיקוני באגים
- תוקנה בעיה שגרמה ל-
waitForStableInActiveWindowלהחזיר NPE במקרים מסוימים (Ibf50f, b/417046391)
גרסה 2.4.0-alpha02
7 במאי 2025
androidx.test.uiautomator:uiautomator:2.4.0-alpha02 מופץ. גרסה 2.4.0-alpha02 מכילה את השמירות האלה.
תכונות חדשות
- הצורה הראשונית של
UiautomatorAPI חדש. אפשר ליצורUiAutomatorTestScopeדרך המפעלuiAutomatorשנותן גישה לממשקי ה-API החדשים שלonView. - כללי Lint ראשוניים לאזהרה על שימוש ב-
AccessibilityNodeInfo#getTextוהצעה לשימוש ב-textAsString.
שינויים ב-API
- נוסף
Configurator#setDefaultDisplayIdכדי להגדיר מזהה תצוגה להגבלת כל החיפושים ל-Icdf17. - ההגדרה של
Searchable(ממשק שמשותף ל-UiDeviceול-UiObject2) שונתה ל'ציבורי' כדי להקל על השימוש (I67f18).
תיקוני באגים
- הטיפול במקשי Meta ב-
UiDevice#pressKeyCodesתוקן. (I73f80). - העדכון של
UiDevice#getWindowRootsמבטיח שהפונקציה תחזיר תמיד את תיקיות הבסיס בסדר הפוך (I87426). - תוקנה בעיה שבה מחוות מסוימות לא הושלמו (I60dd3, If4edd).
- תוקנה לולאה אינסופית נדירה שהתרחשה כשמתקשרים אל
UiDevice#scrollUntil(I39989).
גרסה 2.4.0-alpha01
26 ביוני 2024
androidx.test.uiautomator:uiautomator:2.4.0-alpha01 מופץ. גרסה 2.4.0-alpha01 מכילה את השמירות האלה.
שינויים ב-API
- הוצאנו משימוש את הפרמטרים
Configurator#getKeyInjectionDelayו-setKeyInjectionDelayכי עכשיו הטקסט מוזרק תמיד ישירות ולא באמצעות הקשות על המקשים. (I3bcc5).
תיקוני באגים
- עדכון העיכוב בין
UiObject2אירועי תנועה כדי להתאים לקצב רענון דינמי (כלומר, תצוגה חלקה) (I43f12). - הפחתת התנודתיות כתוצאה מנתוני נגישות לא עדכניים בצמתים בממשקי משתמש מסוימים, על ידי פסילה תקופתית של מטמון הנגישות (I3be25).
- תוקנו בעיות שקשורות לשיחות ל
StaleObjectExceptionשמתרחשות כשמתקשרים אלtoStringאו אלhashCodeבמכשירUiObject2עם גרסה ישנה. (I38ea1). - שיפור הביצועים של
UiWatcherעל ידי דילוג על קריאות מיותרות ל-waitForIdle. (I8c65e). - תוקנו אי דיוקים ב-Javadoc, במיוחד כדי להבהיר מתי נעשה שימוש בכל פרמטר
Configurator. (Ie10b1, I71631).
גרסה 2.3.0
גרסה 2.3.0
21 בפברואר 2024
androidx.test.uiautomator:uiautomator:2.3.0 מופץ. גרסה 2.3.0 מכילה את השמירות האלה.
שינויים חשובים מאז גרסה 2.2.0
- תמיכה בתצוגה מרובת מסכים: נוספה תמיכה באיתור אובייקטים והפעלתם במספר מסכים, ונוספו
UiDeviceשיטות לניהול מסכים משניים (Ie6544, I912cd). - סלקטורים חדשים:
- תנאים מותאמים אישית: נחשף ממשק
Conditionלתמיכה בתנאי המתנה מותאמים אישית, והוספו שיטותUiDevice#wait,UiObject2#waitו-UiObject2#scrollUntilתואמות (27c0ea, 099d6e). - תיקוני באגים ושיפורים באמינות
- תוקנה בעיה שבה החישובים של גודל התצוגה היו שגויים מדי פעם, והתעלמו מחלקים במסך (Ifc016). יכול להיות שיהיה צורך לשנות את הקואורדינטות וההיסטים שמשמשים בבדיקות.
- בוצע עדכון בהזרקת
MotionEventכדי לשפר את הדיוק (678ca3) ולחקות בצורה טובה יותר את תנועות המשתמש (454450). - שיפרנו את המהימנות של גלילה (I7b059), סיבוב (c6cea0), קליקים ארוכים (49572b), צביטה (3c619a) ועוד.
גרסה 2.3.0-rc01
7 בפברואר 2024
הגרסה androidx.test.uiautomator:uiautomator:2.3.0-rc01 יוצאת ללא שינויים. גרסה 2.3.0-rc01 מכילה את השמירות האלה.
גרסה 2.3.0-beta01
13 בדצמבר 2023
androidx.test.uiautomator:uiautomator:2.3.0-beta01 מופץ. גרסה 2.3.0-beta01 מכילה את השמירות האלה.
שינויים ב-API
- לשם שמירה על עקביות, שונה השם של שיטות השוליים שמבוססות על אחוזים,
UiObject2, ל-setGestureMarginPercentageו-setGestureMarginsPercentage(I24435)
תיקוני באגים
- שיפור השגיאה שמוצגת כשלא נמצא מסך משני או כשאין גישה אליו (116b23)
גרסה 2.3.0-alpha05
1 בנובמבר 2023
androidx.test.uiautomator:uiautomator:2.3.0-alpha05 מופץ. גרסה 2.3.0-alpha05 מכילה את השמירות האלה.
שינויים ב-API
- נוספה האפשרות
UiObject2#getDrawingOrderלחשיפת מידע על סדר השרטוט (z-index). (I5dfa4). - נוספו methods
UiDeviceכדי לקבל, להגדיר, להקפיא ולבטל את ההקפאה של הסיבוב של מסכים משניים. (I912cd).
תיקוני באגים
- נוספה אפשרות לניסיון חוזר ל-
UiObject2#scrollUntilאם לא ניתן לזהות את סוף הגלילה (Ibac6f). - תוקנה בעיה שבה
UiDeviceהשתמש במופעInstrumentationלא עדכני אם הוא נוצר מחדש (I18cae). - תוקנה אפשרות ל-NPE אם אי אפשר לקבוע את מזהה התצוגה כשמבצעים dump של צמתים (Icafcb).
- נוספה אזהרה כשמבצעים קליקים או גלילה באובייקטים שלא ניתן ללחוץ עליהם או לגלול אותם (I4a5d9).
- הפחתנו את מהירות הגלילה שמוגדרת כברירת מחדל
UiObject2כדי לשפר את המהימנות (I5e071).
גרסה 2.3.0-alpha04
26 ביולי 2023
androidx.test.uiautomator:uiautomator:2.3.0-alpha04 מופץ. גרסה 2.3.0-alpha04 מכילה את השמירות האלה.
שינויים ב-API
- נוספו
By.hasParentו-By.hasAncestorכדי לתמוך באיתור אובייקטים לפי ההורים שלהם (I93c36). - נוספו שיטות
UiObject2#getHintלאחזור טקסט העזרה של אובייקט ושיטותBy.hintלבחירת אובייקטים לפי טקסט העזרה שלהם (Idd345). - נוספה
By.displayIdתמיכה בבחירת אובייקטים בהתאם לתצוגה שבה הם נמצאים (I1825b). - נוספו השיטות
UiDevice#getDisplayHeight(int)ו-UiDevice#getDisplayWidth(int)כדי למצוא את המאפיינים של מסך לפי המזהה שלו (Ie6544). - הוספנו מחדש את השיטות
wait(SearchCondition, long)ו-wait(UiObject2Condition, long)לתאימות לאחור (Iebfda). - השינוי של
UiDevice#executeShellCommandלגלוי לכולם, אבל לא מומלץ במקום מוסתר (Ic48a1).
תיקוני באגים
- עדכון של הזרקת
MotionEventכדי לצמצם את חוסר היציבות על ידי מתן עדיפות לדיוק התנועות על פני מהירות (678ca3). - הוספנו מעקב לשיטות שצורכות הרבה משאבים כדי לזהות צווארי בקבוק בביצועים (d17de3).
- נוסף מנגנון ניסיון חוזר כשמפעילים חיבור UiAutomation (048caf).
- תוקנה שגיאת NPE אפשרית מצמתים ריקים ב-
UiDevice#dumpWindowHierarchy(b725eb). - תוקנו שגיאות לא צפויות שנובעות משאילתות או מפעולות בהצגות פרטיות (985db6, 7053d4).
גרסה 2.3.0-alpha03
19 באפריל 2023
androidx.test.uiautomator:uiautomator:2.3.0-alpha03 מופץ. גרסה 2.3.0-alpha03 מכילה את השמירות האלה.
שינויים ב-API
- חשפנו ממשק
Conditionכדי לאפשר תנאי המתנה מותאמים אישית במקום להסתמך רק על התנאים המובנים ב-Until, ועדכנו את השיטותUiDevice#waitו-UiObject2#waitכדי לקבל את הממשק הזה (27c0ea). - נוסף
UiObject2#scrollUntilכדי לתמוך בגלילה עד להשגת תנאי מסוים וכדי להגיע לשוויון עםUiScrollable(099d6e). - הוספנו את
UiDevice#setOrientationPortraitואתsetOrientationLandscapeכדי לאפשר רוטציות בין סוגי מכשירים (e13cb7). - נוסף
UiObject2#setGestureMarginPercentכדי לתמוך בהגדרת שוליים ביחס לגודל האובייקט. (Ib8c77)
תיקוני באגים
- תוקנה בעיה שבה שיטות
UiScrollableהשתמשו מדי פעם בקואורדינטות לא תקינות בערכות SDK מגרסה 18 עד 22 (b53ece). - תוקנה בעיה שגרמה לכך ש-
UiObject2#setTextו-clearTextלא הצליחו לשנות טקסט ב-SDK גרסאות 18 ו-19 (77e41d). - תוקנה הבעיה שגרמה לכך שפקודות
UiWatcherלא בוצעו בסדר הנכון (c85f92). - תוקנה בעיה שבה יכול להיות שסיבוב המכשיר לא הושלם אחרי שינוי האוריינטציה
UiDevice(c6cea0). - שיפור המהימנות של קליקים ארוכים, גרירות וצביטות (49572b, 3c619a).
גרסה 2.3.0-alpha02
11 בינואר 2023
androidx.test.uiautomator:uiautomator:2.3.0-alpha02 מופץ. גרסה 2.3.0-alpha02 מכילה את השמירות האלה.
שינויים ב-API
- שינינו את הרישום ביומן בכל הספרייה כדי לספק יותר מידע, להזהיר מפני בעיות אפשריות ולשפר את העקביות.
- הוספנו את
UiDevice#pressKeyCodesכדי לתמוך בלחיצה על כמה מקשים בו-זמנית, למשל לחיצה על לחצן ההפעלה ועל הלחצן להחלשת עוצמת הקול כדי לצלם מסך (22e525). - הוספנו את
UiDevice#setCompressedLayoutHierarchyוהוצאנו משימוש אתUiDevice#setCompressedLayoutHeirarchyכדי לתקן שגיאת הקלדה בשם השיטה (4e2f65). - סימנתי את
UiAutomatorInstrumentationTestRunnerכהוצאה משימוש כי הוא מטפל בUiAutomatorTestCases שהוצאו משימוש וכבר לא נחוץ (be6c85). - העדכון של ההשהיה בין
UiObject2MotionEvents לבין קצב הרענון של התצוגה בוצע כדי לדמות בצורה טובה יותר את תנועות המשתמש (454450). - הוספנו תמיכה בטקסט רב-שורה ובהתאמה לתיאור (1625e6, b/255787130).
תיקוני באגים
- תוקנה בעיה שגרמה להצגת שגיאות
StaleObjectExceptionמדי פעם בזמן שליחת שאילתות או המתנה לאובייקטים (4cbcc0). - תוקנו הערכים המוחזרים של
UiScrollable#scrollToBeginning,scrollToEnd,flingToBeginningו-flingToEndשלא מציינים אם הושג ההתחלה או הסוף (d33e06). - תוקנו השיטות
UiScrollable#scrollForwardו-scrollBackwardשמתעלמות מהזמן הקצוב לתפוגה שהוגדר (29e4f3). - תוקן בנאי ההעתקה
BySelectorשלא טיפל בסלקטורים של עומק (6c7b91). - תוקן הטיפול בערכי אחוזים לא תקינים בעמודות
UiObject#pinchInו-pinchOut(01b973). - תוקנה בעיה נדירה שבה התמיכה בריבוי חלונות נעלמה אם החיבור הבסיסי של
UiAutomationאופס (1bb956).
גרסה 2.3.0-alpha01
7 בספטמבר 2022
androidx.test.uiautomator:uiautomator:2.3.0-alpha01 מופץ. גרסה 2.3.0-alpha01 מכילה את השמירות האלה.
שינויים ב-API
- הוספנו הערות לגבי האפשרות שהערך יהיה null בכל השיטות הציבוריות.
- החלפנו את הזרקת
MotionEventלאסינכרונית עם השהיה קצרה כדי שתנועותUiObject2יהיו חלקות יותר. - הקטנו את מרווח הזמן בין בדיקות בזמן ההמתנה מ-1,000 אלפיות השנייה ל-100 אלפיות השנייה.
- עדכנו את
UiDevice#wakeUpואתUiDevice#sleepכך שישתמשו ב-KEYCODE_WAKEUPוב-KEYCODE_SLEEPכדי לתמוך במכשירים שמבטלים את הפעולה של לחצן ההפעלה. - הוספנו את
UiObject2#getDisplayIdותמיכה באיתור וניהול של אובייקטים בכמה מסכים. - נוספו ה-methods
UiObject#clickו-UiObject2#clickAndWaitללחיצה על נקודה באמצעות הקואורדינטות שלה.
תיקוני באגים
- תוקנה בעיה שבה החישובים של גודל התצוגה היו שגויים מדי פעם, והתעלמו מחלקים במסך, במיוחד במצב ריבוי חלונות (Ifc016c).
- תוקן שינוי הגודל של צילומי מסך ב-
UiDevice#takeScreenshot(Id80ad6). - שיפרנו את האמינות של
Until.scrollFinishedושלUiObject2#scroll(I7b0595). - תוקנו אזהרות במצב קפדני
IncorrectContextUseViolation(Iffa6a0).