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 में ये कमिट शामिल हैं.
नई सुविधाएं
- नए
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
को कॉल करते समय,StaleObjectException
s ठीक हो गए हैं. (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).- उपयोगकर्ता के जेस्चर को बेहतर तरीके से समझने के लिए,
UiObject2
MotionEvent
s के बीच के समय को डिसप्ले रीफ़्रेश रेट से दोगुना कर दिया गया है (454450). - एक से ज़्यादा लाइनों वाले टेक्स्ट और ब्यौरे के मिलान की सुविधा जोड़ी गई (1625e6, b/255787130).
गड़बड़ियां ठीक की गईं
- कभी-कभी ऑब्जेक्ट के लिए क्वेरी करते समय या इंतज़ार करते समय, फ़िक्स्ड
StaleObjectException
s थ्रो किए जा रहे हैं (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) से जुड़ी समस्या ठीक की गई.