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)
गड़बड़ियां ठीक की गईं
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के ज़रिए बनाया जा सकता है. इससे नए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). - नए सिलेक्टर:
- कस्टम शर्तें: कस्टम शर्तों को पूरा करने के लिए,
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).- उपयोगकर्ता के जेस्चर को बेहतर तरीके से समझने के लिए,
UiObject2MotionEvents के बीच के समय को डिसप्ले रीफ़्रेश रेट से दोगुना कर दिया गया है (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) से जुड़ी समस्या ठीक की गई.