בדיקת Uiautomator

  
Framework for cross app functional UI testing
העדכון האחרון גרסה יציבה גרסה מועמדת להפצה גרסת בטא גרסת אלפא
‫17 ביוני 2026 2.3.0 ‎2.4.0-rc01 - -

הצהרה על יחסי תלות

כדי להוסיף תלות בבדיקה, צריך להוסיף את מאגר Google Maven לפרויקט. מידע נוסף זמין במאמר בנושא מאגר Maven של Google.

אתם יכולים להוסיף את יחסי התלות של הארטיפקטים שאתם צריכים בקובץ build.gradle של האפליקציה או המודול:

מגניב

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")
}

מידע נוסף זמין במאמר הוספת יחסי תלות ב-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

גרסה ‎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-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

  • הפונקציה startActivity wait שונתה ל-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)

תיקוני באגים

גרסה ‎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 באמצעות הפקטורי (factory) uiAutomator שנותן גישה לממשקי ה-API החדשים של onView.
  • כללי Lint ראשוניים לאזהרה על שימוש ב-AccessibilityNodeInfo#getText והצעה לשימוש ב-textAsString.

שינויים ב-API

  • נוסף Configurator#setDefaultDisplayId כדי להגדיר מזהה תצוגה להגבלת כל החיפושים ל-Icdf17.
  • ההגדרה של Searchable (ממשק שמשותף על ידי UiDevice ו-UiObject2) שונתה לציבורית מטעמי נוחות (I67f18).

תיקוני באגים

  • הטיפול במקשי Meta תוקן ב-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 שמתרחשות כשמתקשרים אל 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).
  • סלקטורים חדשים:
    • נוספה האפשרות By.displayId לבחירת אובייקטים לפי מזהה התצוגה שלהם (I1825b).
    • נוספו By.hasParent ו-By.hasAncestor כדי לבחור אובייקטים לפי ההורים שלהם (I93c36).
    • נוספו By.hint שיטות לבחירת אובייקטים לפי טקסט הרמז שלהם (Idd345).
  • תנאים מותאמים אישית: נחשף ממשק 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 כדי לתמוך בלחיצה על כמה מקשים בו-זמנית, למשל לחיצה על POWER ו-VOLUME_DOWN כדי לצלם מסך (22e525).
  • הוספנו את UiDevice#setCompressedLayoutHierarchy והוצאנו משימוש את UiDevice#setCompressedLayoutHeirarchy כדי לתקן שגיאת הקלדה בשם השיטה (4e2f65).
  • סימנתי את UiAutomatorInstrumentationTestRunner כהוצאה משימוש כי הוא מטפל בUiAutomatorTestCases שהוצאו משימוש וכבר לא נחוץ (be6c85).
  • העדכון של ההשהיה בין UiObject2 MotionEvents לבין קצב רענון התצוגה (כפול) נועד לדמות טוב יותר את תנועות המשתמשים (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).