בדיקת Uiautomator
העדכון האחרון | גרסה יציבה | גרסה מועמדת להפצה | גרסת בטא | גרסת אלפא |
---|---|---|---|---|
13 באוגוסט 2025 | 2.3.0 | - | - | 2.4.0-alpha06 |
הצהרה על יחסי תלות
כדי להוסיף תלות בבדיקה, צריך להוסיף את מאגר Google Maven לפרויקט. מידע נוסף זמין במאמר בנושא מאגר Maven של Google.
מוסיפים את יחסי התלות של הארטיפקטים שאתם צריכים בקובץ build.gradle
של האפליקציה או המודול:
Groovy
dependencies { // Use to implement UIAutomator tests androidTestImplementation "androidx.test.uiautomator:uiautomator:2.4.0-alpha06" }
Kotlin
dependencies { // Use to implement UIAutomator tests androidTestImplementation("androidx.test.uiautomator:uiautomator:2.4.0-alpha06") }
מידע נוסף על יחסי תלות זמין במאמר הוספת יחסי תלות ב-Build.
משוב
המשוב שלכם עוזר לנו לשפר את Jetpack. נשמח לשמוע מכם אם תגלו בעיות חדשות או אם יש לכם רעיונות לשיפור הספרייה הזו. לפני שיוצרים ספרייה חדשה, כדאי לעיין בבעיות הקיימות בספרייה הזו. כדי להוסיף את ההצבעה שלכם לבעיה קיימת, לוחצים על לחצן הכוכב.
מידע נוסף זמין במאמרי העזרה בנושא כלי המעקב אחר בעיות.
בדיקת Uiautomator Shell גרסה 1.0
גרסה 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-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#accessibilityNodeInfo#waitForStable()
בשםUiObject2#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 מכילה את ההתחייבויות האלה.
תכונות חדשות
- הצורה הראשונית של
Uiautomator
API חדש. אפשר ליצור את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). - נוספו
UiDevice
שיטות לקבלת הסיבוב של מסכים משניים, להגדרת הסיבוב, להקפאת הסיבוב ולביטול ההקפאה שלו. (I912cd).
תיקוני באגים
- נוספה אפשרות לניסיון חוזר ל-
UiObject2#scrollUntil
אם לא ניתן לזהות את סוף הגלילה (Ibac6f). - תוקנה בעיה שבה
UiDevice
השתמש במופעInstrumentation
לא עדכני אם הוא נוצר מחדש (I18cae). - תוקנה אפשרות ל-NPE אם אי אפשר לקבוע את מזהה התצוגה כשמבצעים dump של צמתים (Icafcb).
- נוספה אזהרה כשמבצעים קליקים או גלילה באובייקטים שלא ניתן ללחוץ עליהם או לגלול אותם (I4a5d9).
- הפחתנו את מהירות הגלילה שמוגדרת כברירת מחדל כדי לשפר את המהימנות (I5e071).
UiObject2
גרסה 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 אפשרית מצמתים מסוג null ב-
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). - תוקנה בעיה שגרמה לכך ששינוי הטקסט ב-SDKs 18 ו-19 נכשל (
UiObject2#setText
ו-clearText
) (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
כדי לתמוך בלחיצה על כמה מקשים בו-זמנית, למשל לחיצה על POWER ו-VOLUME_DOWN כדי לצלם מסך (22e525). - הוספנו את
UiDevice#setCompressedLayoutHierarchy
והוצאנו משימוש אתUiDevice#setCompressedLayoutHeirarchy
כדי לתקן שגיאת הקלדה בשם השיטה (4e2f65). - סימנו את
UiAutomatorInstrumentationTestRunner
כהוצאה משימוש כי הוא מטפל בUiAutomatorTestCase
s שהוצאו משימוש וכבר לא נחוץ (be6c85). - העדכון של ההשהיה בין
UiObject2
MotionEvent
s לבין קצב הרענון של התצוגה (כפול) נועד לדמות טוב יותר את תנועות המשתמשים (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
ותמיכה באיתור וניהול של אובייקטים בכמה מסכים. - נוספו שיטות
UiObject#click
ו-UiObject2#clickAndWait
ללחיצה על נקודה באמצעות הקואורדינטות שלה.
תיקוני באגים
- תוקנה בעיה שבה החישובים של גודל התצוגה היו שגויים מדי פעם, והתעלמו מחלקים במסך, במיוחד במצב ריבוי חלונות (Ifc016c).
- תוקן שינוי הגודל של צילומי מסך ב-
UiDevice#takeScreenshot
(Id80ad6). - שיפרנו את האמינות של
Until.scrollFinished
ושלUiObject2#scroll
(I7b0595). - תוקנו אזהרות במצב קפדני
IncorrectContextUseViolation
(Iffa6a0).