בדיקת Uiautomator
העדכון האחרון | גרסה יציבה | גרסה מועמדת להפצה | גרסת בטא | גרסת אלפא |
---|---|---|---|---|
7 במאי 2025 | 2.3.0 | - | - | 2.4.0-alpha02 |
הצהרת יחסי תלות
כדי להוסיף יחסי תלות לבדיקה, צריך להוסיף את מאגר Google Maven לפרויקט. מידע נוסף זמין במאגר Maven של Google.
מוסיפים את יחסי התלות של הארטיפקטים הנדרשים בקובץ build.gradle
של האפליקציה או המודול:
מגניב
dependencies { // Use to implement UIAutomator tests androidTestImplementation "androidx.test.uiautomator:uiautomator:2.4.0-alpha02" }
Kotlin
dependencies { // Use to implement UIAutomator tests androidTestImplementation("androidx.test.uiautomator:uiautomator:2.4.0-alpha02") }
מידע נוסף על יחסי תלות זמין במאמר הוספת יחסי תלות ל-build.
משוב
המשוב שלכם עוזר לנו לשפר את Jetpack. אם נתקלתם בבעיות חדשות או שיש לכם רעיונות לשיפור הספרייה הזו, נשמח לשמוע מכם. לפני שיוצרים בעיה חדשה, כדאי לעיין בבעיות הקיימות בספרייה הזו. כדי להצביע על בעיה קיימת, לוחצים על לחצן הכוכב.
מידע נוסף זמין במסמכי התיעוד של Issue Tracker.
גרסה 2.4
גרסה 2.4.0-alpha02
7 במאי 2025
androidx.test.uiautomator:uiautomator:2.4.0-alpha02
משוחרר. גרסה 2.4.0-alpha02 מכילה את ההוספות האלה.
תכונות חדשות
- הצורה הראשונית של ה-API החדש של
Uiautomator
. אפשר ליצור אתUiAutomatorTestScope
דרך המפעלuiAutomator
שמעניק גישה לממשקי ה-API החדשים שלonView
. - כללי Lint ראשוניים לאזהרה על שימוש ב-
AccessibilityNodeInfo#getText
ולהצעת שימוש ב-textAsString
.
שינויים ב-API
- נוספה
Configurator#setDefaultDisplayId
כדי להגדיר מזהה תצוגה שיגביל את כל החיפושים ל-(Icdf17). - שיניתי את
Searchable
(ממשק ששותף על ידיUiDevice
ו-UiObject2
) ל'גלוי לכולם' למען הנוחות (I67f18).
תיקוני באגים
- תוקנה הטיפול במפתחות מטא ב-
UiDevice#pressKeyCodes
. (I73f80). - עדכנו את
UiDevice#getWindowRoots
כך שיחזיר תמיד שורשים בסדר Z (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
s קבועים שמתרחשים כשקוראים ל-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).
- הפחתנו את מהירות הגלילה
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 אפשרית מצמתים 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
שבהן נעשה שימוש מדי פעם בקואורדינטות לא חוקיות ב-SDKs 18 עד 22 (b53ece). - תוקנה בעיה שבה
UiObject2#setText
ו-clearText
לא הצליחו לשנות טקסט ב-SDKs 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
כדי לתמוך בלחיצה על כמה מקשים בו-זמנית, למשל לחיצה על POWER ו-VOLUME_DOWN כדי לצלם מסך (22e525). - הוספנו את
UiDevice#setCompressedLayoutHierarchy
והוצאנו משימוש אתUiDevice#setCompressedLayoutHeirarchy
כדי לתקן שגיאת הקלדה בשם השיטה (4e2f65). - הסימון
UiAutomatorInstrumentationTestRunner
הוצא משימוש כי הוא מטפל ב-UiAutomatorTestCase
שהוצא משימוש ולא נחוץ יותר (be6c85). - עדכנו את העיכוב בין
UiObject2
MotionEvent
ל-2x refresh rate של המסך, כדי לדמות טוב יותר את תנועות המשתמש (454450). - הוספנו תמיכה בהתאמה של טקסט ותיאור בכמה שורות (1625e6, b/255787130).
תיקוני באגים
- תוקנה בעיה שבה לפעמים הושלחו
StaleObjectException
s במהלך שליחת שאילתה או במהלך ההמתנה לאובייקטים (4cbcc0). - תוקנו הערכים המוחזרים של
UiScrollable#scrollToBeginning
,scrollToEnd
,flingToBeginning
ו-flingToEnd
שלא ציינו אם הגעתם להתחלה או לסוף (d33e06). - תוקנו השיטות
UiScrollable#scrollForward
ו-scrollBackward
שהתעלמו מזמן הקצוב לתפוגה שהוגדר (29e4f3). - תוקן הבעיה שבה מאסטר ה-copy של
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
הועברה ללא קשר לזמן (asynchronous) עם עיכוב קצר כדי לאפשר תנועות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).