Test Uiautomator

  
क्रॉस ऐप्लिकेशन फ़ंक्शनल यूज़र इंटरफ़ेस (यूआई) की जांच करने के लिए फ़्रेमवर्क
नया अपडेट स्टेबल रिलीज़ रिलीज़ कैंडिडेट बीटा रिलीज़ ऐल्फ़ा वर्शन
13 अगस्त, 2025 2.3.0 - - 2.4.0-alpha06

डिपेंडेंसी का एलान करना

टेस्ट पर डिपेंडेंसी जोड़ने के लिए, आपको अपने प्रोजेक्ट में Google Maven रिपॉज़िटरी जोड़नी होगी. ज़्यादा जानकारी के लिए, Google की Maven रिपॉज़िटरी पढ़ें.

अपने ऐप्लिकेशन या मॉड्यूल के लिए, build.gradle फ़ाइल में उन आर्टफ़ैक्ट की डिपेंडेंसी जोड़ें जिनकी आपको ज़रूरत है:

ग्रूवी

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

डिपेंडेंसी के बारे में ज़्यादा जानने के लिए, बिल्ड डिपेंडेंसी जोड़ना लेख पढ़ें.

सुझाव/राय दें या शिकायत करें

आपके सुझाव, शिकायत या राय से Jetpack को बेहतर बनाने में मदद मिलती है. अगर आपको कोई नई समस्या मिलती है या इस लाइब्रेरी को बेहतर बनाने के लिए आपके पास कोई सुझाव है, तो हमें बताएं. कृपया नई लाइब्रेरी बनाने से पहले, इस लाइब्रेरी में मौजूद मौजूदा समस्याओं को देखें. स्टार बटन पर क्लिक करके, किसी मौजूदा समस्या के लिए वोट किया जा सकता है.

नई समस्या बनाना

ज़्यादा जानकारी के लिए, Issue Tracker का दस्तावेज़ देखें.

Test Uiautomator Shell Version 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 शेल लाइब्रेरी का पहला ऐल्फ़ा वर्शन. इस लाइब्रेरी की मदद से, शेल से लॉन्च की गई श प्रोसेस के stdout, stderr को पढ़ा जा सकता है. साथ ही, stdin में लिखा जा सकता है. यह फ़ंक्शन, एपीआई 34 में पेश किए गए UiAutomation#executeShellCommandRwe को बैकपोर्ट करता है.

वर्शन 2.4

वर्शन 2.4.0-alpha06

13 अगस्त, 2025

androidx.test.uiautomator:uiautomator:2.4.0-alpha06 रिलीज़ हो गया है. वर्शन 2.4.0-alpha06 में ये कमिट शामिल हैं.

नई सुविधाएं

  • मल्टी-विंडो टेस्टिंग को बेहतर बनाने के लिए, विंडो पर आधारित एपीआई जोड़े गए हैं. इसका मतलब है कि UiDevice#findWindow का इस्तेमाल अब By.Window फ़ैक्ट्री के तरीकों से बनाए गए ByWindowSelector के हिसाब से, किसी खास UiWindow को ढूंढने के लिए किया जा सकता है. (I359c4, I40528, I8c963)

वर्शन 2.4.0-alpha05

18 जून, 2025

androidx.test.uiautomator:uiautomator:2.4.0-alpha05 रिलीज़ हो गया है. वर्शन 2.4.0-alpha05 में ये कमिट शामिल हैं.

एपीआई में हुए बदलाव

  • UiObject2#waitForStable को UiObject2#accessibilityNodeInfo#waitForStable() के शॉर्टकट के तौर पर जोड़ा गया

वर्शन 2.4.0-alpha04

4 जून, 2025

androidx.test.uiautomator:uiautomator:2.4.0-alpha04 रिलीज़ हो गया है. वर्शन 2.4.0-alpha04 में ये कमिट शामिल हैं.

एपीआई में हुए बदलाव

  • 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 को फ़ैक्ट्री uiAutomator के ज़रिए बनाया जा सकता है. इससे नए onView एपीआई का ऐक्सेस मिलता है.
  • AccessibilityNodeInfo#getText के इस्तेमाल के बारे में चेतावनी देने और textAsString के इस्तेमाल का सुझाव देने के लिए, शुरुआती लिंट नियम.

एपीआई में हुए बदलाव

  • 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 में ये कमिट शामिल हैं.

एपीआई में हुए बदलाव

  • Configurator#getKeyInjectionDelay और setKeyInjectionDelay को अब इस्तेमाल नहीं किया जा सकता, क्योंकि अब टेक्स्ट को सीधे तौर पर डाला जाता है. इसके लिए, बटन दबाने की ज़रूरत नहीं होती. (I3bcc5).

गड़बड़ियां ठीक की गईं

  • डाइनैमिक रीफ़्रेश रेट (यानी कि स्मूद डिसप्ले) को ध्यान में रखते हुए, UiObject2 मोशन इवेंट के बीच के समय को अपडेट किया गया है (I43f12).
  • कुछ यूज़र इंटरफ़ेस (यूआई) पर, सुलभता नोड के पुराने होने की वजह से होने वाली गड़बड़ियों को कम किया गया है. इसके लिए, सुलभता कैश मेमोरी को समय-समय पर अमान्य किया जाता है (I3be25).
  • पुराने UiObject2 पर toString या hashCode को कॉल करते समय, StaleObjectExceptions ठीक हो गए हैं. (I38ea1).
  • ज़रूरी न होने वाले waitForIdle कॉल को स्किप करके, UiWatcher की परफ़ॉर्मेंस को बेहतर बनाया गया है. (I8c65e).
  • जावाडॉक में मौजूद गलतियों को ठीक किया गया है. खास तौर पर, यह साफ़ तौर पर बताया गया है कि हर 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).
  • नए सिलेक्टर:
    • डिसप्ले आईडी (I1825b) के हिसाब से ऑब्जेक्ट चुनने के लिए, By.displayId जोड़ा गया.
    • माता-पिता के हिसाब से ऑब्जेक्ट चुनने के लिए, By.hasParent और By.hasAncestor जोड़े गए (I93c36).
    • ऑब्जेक्ट को उनके हिंट टेक्स्ट (Idd345) के हिसाब से चुनने के लिए, By.hint तरीके जोड़े गए.
  • कस्टम शर्तें: कस्टम शर्तों को पूरा करने के लिए, 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 में ये कमिट शामिल हैं.

एपीआई में हुए बदलाव

  • एक जैसे नाम रखने के लिए, मार्जिन के UiObject2 प्रतिशत पर आधारित तरीकों के नाम बदलकर setGestureMarginPercentage और setGestureMarginsPercentage कर दिए गए हैं (I24435)

गड़बड़ियां ठीक की गईं

  • जब कोई सेकंडरी डिसप्ले नहीं मिलता है या उस तक नहीं पहुंचा जा सकता, तब दिखने वाली गड़बड़ी को बेहतर बनाया गया है (116b23)

वर्शन 2.3.0-alpha05

1 नवंबर, 2023

androidx.test.uiautomator:uiautomator:2.3.0-alpha05 रिलीज़ हो गया है. वर्शन 2.3.0-alpha05 में ये कमिट शामिल हैं.

एपीआई में हुए बदलाव

  • ड्रॉइंग ऑर्डर (z-index) की जानकारी दिखाने के लिए, UiObject2#getDrawingOrder जोड़ा गया. (I5dfa4).
  • सेकंडरी डिसप्ले के रोटेशन को पाने, सेट करने, फ़्रीज़ करने, और अनफ़्रीज़ करने के लिए, UiDevice तरीके जोड़े गए हैं. (I912cd).

गड़बड़ियां ठीक की गईं

  • स्क्रोलिंग खत्म होने का पता न चलने पर, UiObject2#scrollUntil में फिर से कोशिश करने की सुविधा जोड़ी गई (Ibac6f).
  • उस समस्या को ठीक किया गया है जिसमें UiDevice को फिर से बनाने पर, वह पुराने Instrumentation इंस्टेंस का इस्तेमाल करता था (I18cae).
  • नोड डंप करते समय (Icafcb), डिसप्ले आईडी का पता न चलने पर होने वाली संभावित NPE को ठीक किया गया है.
  • क्लिक नहीं किए जा सकने वाले/स्क्रोल नहीं किए जा सकने वाले ऑब्जेक्ट पर क्लिक/स्क्रोल करने पर चेतावनी जोड़ी गई (I4a5d9).
  • डिफ़ॉल्ट UiObject2 स्क्रोल करने की स्पीड को कम किया गया है, ताकि यह ज़्यादा भरोसेमंद हो (I5e071).

वर्शन 2.3.0-alpha04

26 जुलाई, 2023

androidx.test.uiautomator:uiautomator:2.3.0-alpha04 रिलीज़ हो गया है. वर्शन 2.3.0-alpha04 में ये कमिट शामिल हैं.

एपीआई में हुए बदलाव

  • माता-पिता (I93c36) के हिसाब से ऑब्जेक्ट ढूंढने की सुविधा के लिए, By.hasParent और By.hasAncestor जोड़े गए.
  • किसी ऑब्जेक्ट का हिंट टेक्स्ट पाने के लिए, UiObject2#getHint जोड़ा गया. साथ ही, हिंट टेक्स्ट के हिसाब से ऑब्जेक्ट चुनने के लिए By.hint तरीके जोड़े गए (Idd345).
  • By.displayId जोड़ा गया है, ताकि ऑब्जेक्ट को उस डिसप्ले के हिसाब से चुना जा सके जिस पर वे मौजूद हैं (I1825b).
  • डिस्प्ले के डाइमेंशन को उसके आईडी (Ie6544) से ढूंढने के लिए, UiDevice#getDisplayHeight(int) और UiDevice#getDisplayWidth(int) तरीके जोड़े गए.
  • पुराने सिस्टम के साथ काम करने की सुविधा के लिए, wait(SearchCondition, long) और wait(UiObject2Condition, long) तरीकों को फिर से जोड़ा गया (Iebfda).
  • UiDevice#executeShellCommand को सार्वजनिक के तौर पर सेट किया गया है. हालांकि, इसे छिपाने के बजाय हतोत्साहित किया गया है (Ic48a1).

गड़बड़ियां ठीक की गईं

  • MotionEvent इंजेक्शन को अपडेट किया गया है, ताकि जेस्चर की स्पीड के बजाय उसकी सटीक जानकारी को प्राथमिकता देकर, फ़्लैकनेस को कम किया जा सके (678ca3).
  • परफ़ॉर्मेंस से जुड़ी समस्याओं का पता लगाने के लिए, ज़्यादा संसाधन इस्तेमाल करने वाले तरीकों में ट्रेसिंग की सुविधा जोड़ी गई (d17de3).
  • UiAutomation कनेक्शन शुरू करते समय, फिर से कोशिश करने का तरीका जोड़ा गया (048caf).
  • UiDevice#dumpWindowHierarchy में मौजूद शून्य नोड से होने वाली संभावित NPE को ठीक किया गया (b725eb).
  • निजी डिसप्ले पर क्वेरी करने या उन्हें चलाने के दौरान आने वाली अनचाही गड़बड़ियों को ठीक किया गया (985db6, 7053d4).

वर्शन 2.3.0-alpha03

19 अप्रैल, 2023

androidx.test.uiautomator:uiautomator:2.3.0-alpha03 रिलीज़ हो गया है. वर्शन 2.3.0-alpha03 में ये कमिट शामिल हैं.

एपीआई में हुए बदलाव

  • Condition इंटरफ़ेस को दिखाया गया है, ताकि Until में पहले से मौजूद सुविधाओं पर पूरी तरह से भरोसा करने के बजाय, कस्टम वेट की शर्तों का इस्तेमाल किया जा सके. साथ ही, UiDevice#wait और UiObject2#wait तरीकों को अपडेट किया गया है, ताकि वे इस इंटरफ़ेस को स्वीकार कर सकें (27c0ea).
  • UiObject2#scrollUntil को जोड़ा गया है, ताकि किसी शर्त के पूरा होने तक स्क्रोल किया जा सके. साथ ही, UiScrollable (099d6e) के साथ समानता हासिल की जा सके.
  • अलग-अलग तरह के डिवाइसों (e13cb7) पर रोटेशन की सुविधा देने के लिए, UiDevice#setOrientationPortrait और setOrientationLandscape को जोड़ा गया है.
  • ऑब्जेक्ट के साइज़ के हिसाब से मार्जिन सेट करने की सुविधा देने के लिए, UiObject2#setGestureMarginPercent जोड़ा गया है. (Ib8c77)

गड़बड़ियां ठीक की गईं

  • हमने UiScrollable के उन तरीकों को ठीक किया है जिनमें कभी-कभी एसडीके 18 से 22 (b53ece) पर अमान्य निर्देशांकों का इस्तेमाल किया जाता था.
  • एसडीके 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 में ये कमिट शामिल हैं.

एपीआई में हुए बदलाव

  • पूरी लाइब्रेरी में लॉगिंग की सुविधा को फिर से तैयार किया गया है, ताकि ज़्यादा जानकारी दी जा सके, संभावित समस्याओं के बारे में चेतावनी दी जा सके, और एक जैसा अनुभव दिया जा सके.
  • एक साथ कई बटन दबाने की सुविधा जोड़ी गई है. जैसे, स्क्रीनशॉट लेने के लिए पावर बटन और आवाज़ कम करने वाले बटन को एक साथ दबाना (22e525).UiDevice#pressKeyCodes
  • तरीके के नाम (4e2f65) में टाइप की गई गलत जानकारी को ठीक करने के लिए, UiDevice#setCompressedLayoutHierarchy को जोड़ा गया और UiDevice#setCompressedLayoutHeirarchy को बंद किया गया.
  • UiAutomatorInstrumentationTestRunner को डेप्रिकेट के तौर पर मार्क किया गया है, क्योंकि यह डेप्रिकेट किए गए UiAutomatorTestCase को हैंडल करता है और अब इसकी ज़रूरत नहीं है (be6c85).
  • उपयोगकर्ता के जेस्चर को बेहतर तरीके से समझने के लिए, UiObject2 MotionEvents के बीच के समय को डिसप्ले रीफ़्रेश रेट से दोगुना कर दिया गया है (454450).
  • एक से ज़्यादा लाइनों वाले टेक्स्ट और ब्यौरे के मिलान की सुविधा जोड़ी गई (1625e6, b/255787130).

गड़बड़ियां ठीक की गईं

  • कभी-कभी ऑब्जेक्ट के लिए क्वेरी करते समय या इंतज़ार करते समय, फ़िक्स्ड StaleObjectExceptions थ्रो किए जा रहे हैं (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 में ये कमिट शामिल हैं.

एपीआई में हुए बदलाव

  • सभी सार्वजनिक तरीकों के लिए, एनोटेशन के तौर पर 'शून्य नहीं है' का इस्तेमाल किया गया है.
  • MotionEvent जेस्चर को ज़्यादा आसानी से इस्तेमाल करने के लिए, MotionEvent इंजेक्शन को कुछ समय के लिए एसिंक्रोनस पर स्विच किया गया.UiObject2
  • 1000 मि॰से॰ से 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) से जुड़ी समस्या ठीक की गई.