Uiautomator की जांच करना
नया अपडेट | रिलीज़ किया गया जांचा और परखा हुआ वर्शन | रिलीज़ कैंडिडेट | बीटा रिलीज़ | ऐल्फ़ा रिलीज़ |
---|---|---|---|---|
7 मई, 2025 | 2.3.0 | - | - | 2.4.0-alpha02 |
डिपेंडेंसी का एलान करना
टेस्ट पर डिपेंडेंसी जोड़ने के लिए, आपको अपने प्रोजेक्ट में Google Maven रिपॉज़िटरी जोड़नी होगी. ज़्यादा जानकारी के लिए, Google की Maven रिपॉज़िटरी पढ़ें.
अपने ऐप्लिकेशन या मॉड्यूल के लिए, 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") }
डिपेंडेंसी के बारे में ज़्यादा जानने के लिए, बिल्ड डिपेंडेंसी जोड़ना लेख पढ़ें.
सुझाव/राय दें या शिकायत करें
आपके सुझाव, शिकायत या राय से हमें Jetpack को बेहतर बनाने में मदद मिलती है. अगर आपको कोई नई समस्या मिलती है या इस लाइब्रेरी को बेहतर बनाने के लिए आपके पास कोई सुझाव है, तो हमें बताएं. नई लाइब्रेरी बनाने से पहले, कृपया इस लाइब्रेरी में मौजूद मौजूदा समस्याओं पर एक नज़र डालें. स्टार बटन पर क्लिक करके, किसी मौजूदा समस्या पर अपना वोट जोड़ा जा सकता है.
ज़्यादा जानकारी के लिए, समस्या ट्रैकर का दस्तावेज़ देखें.
वर्शन 2.4
वर्शन 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
के इस्तेमाल का सुझाव देने के लिए, लिंट के शुरुआती नियम.
एपीआई में हुए बदलाव
- सभी खोजों को (Icdf17) तक सीमित करने के लिए, डिसप्ले आईडी सेट करने के लिए
Configurator#setDefaultDisplayId
जोड़ा गया. 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
गड़बड़ियों को ठीक किया गया. (I38ea1). - ज़रूरी न होने वाले
waitForIdle
कॉल को स्किप करके,UiWatcher
की परफ़ॉर्मेंस को बेहतर बनाया. (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 वर्शन में ये बदलाव शामिल हैं.
एपीआई में हुए बदलाव
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) को डंप करते समय डिसप्ले आईडी का पता नहीं चल पाता है, तो एनपीई (नल से पॉइंटर) की संभावित गड़बड़ी को ठीक किया गया है.
- क्लिक न किए जा सकने वाले/स्क्रोल न किए जा सकने वाले ऑब्जेक्ट (I4a5d9) पर क्लिक/स्क्रोल करने पर चेतावनी जोड़ी गई.
- भरोसे को बेहतर बनाने के लिए, डिफ़ॉल्ट
UiObject2
स्क्रोल स्पीड को कम किया गया (I5e071).
वर्शन 2.3.0-alpha04
26 जुलाई, 2023
androidx.test.uiautomator:uiautomator:2.3.0-alpha04
रिलीज़ हो गया है. 2.3.0-alpha04 वर्शन में ये बदलाव शामिल हैं.
एपीआई में हुए बदलाव
- पैरंट के हिसाब से ऑब्जेक्ट ढूंढने की सुविधा जोड़ी गई है. इसके लिए,
By.hasParent
औरBy.hasAncestor
जोड़े गए हैं (I93c36). - किसी ऑब्जेक्ट के हिंट टेक्स्ट को वापस पाने के लिए
UiObject2#getHint
और उसके हिंट टेक्स्ट (Idd345) के हिसाब से ऑब्जेक्ट चुनने के लिएBy.hint
तरीके जोड़े गए. - ऑब्जेक्ट को उस डिसप्ले के हिसाब से चुनने के लिए,
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
(b725eb) में, शून्य नोड से होने वाले संभावित एनपीई को ठीक किया गया.- निजी डिसप्ले (985db6, 7053d4) पर क्वेरी करने या उन पर काम करने से होने वाली अनचाही गड़बड़ियों को ठीक किया गया.
वर्शन 2.3.0-alpha03
19 अप्रैल, 2023
androidx.test.uiautomator:uiautomator:2.3.0-alpha03
रिलीज़ हो गया है. 2.3.0-alpha03 वर्शन में ये बदलाव शामिल हैं.
एपीआई में हुए बदलाव
Until
में पहले से मौजूद फ़ंक्शन के बजाय, कस्टम वेटिंग कंडीशन की अनुमति देने के लिए,Condition
इंटरफ़ेस जोड़ा गया. साथ ही, इस इंटरफ़ेस को स्वीकार करने के लिए,UiDevice#wait
औरUiObject2#wait
के तरीकों को अपडेट किया गया (27c0ea).UiObject2#scrollUntil
जोड़ा गया, ताकि शर्त पूरी होने तक स्क्रोल किया जा सके. साथ ही,UiScrollable
(099d6e) के साथ पैरिटी हासिल की जा सके.- अलग-अलग तरह के डिवाइसों पर रोटेशन की सुविधा देने के लिए,
UiDevice#setOrientationPortrait
औरsetOrientationLandscape
जोड़े गए (e13cb7). - ऑब्जेक्ट के साइज़ के हिसाब से मार्जिन सेट करने के लिए,
UiObject2#setGestureMarginPercent
जोड़ा गया. (Ib8c77)
गड़बड़ियां ठीक की गईं
- SDK टूल 18 से 22 (b53ece) पर, अमान्य कोऑर्डिनेट का इस्तेमाल करने वाले
UiScrollable
तरीकों को ठीक किया गया. - SDK टूल के 18 और 19 वर्शन (77e41d) पर टेक्स्ट में बदलाव न होने की समस्या को ठीक किया गया.
UiObject2#setText
clearText
UiWatcher
को सही क्रम में लागू न करने की समस्या को ठीक किया गया (c85f92).UiDevice
ओरिएंटेशन में बदलाव करने के बाद, डिवाइस के रोटेशन की प्रोसेस पूरी न होने की समस्या को ठीक किया गया है (c6cea0).- लंबे समय तक क्लिक करने, खींचने, और पिंच करने की सुविधा को बेहतर बनाया गया है (49572b, 3c619a).
वर्शन 2.3.0-alpha02
11 जनवरी, 2023
androidx.test.uiautomator:uiautomator:2.3.0-alpha02
रिलीज़ हो गया है. 2.3.0-alpha02 वर्शन में ये बदलाव शामिल हैं.
एपीआई में हुए बदलाव
- ज़्यादा जानकारी देने, संभावित समस्याओं के बारे में चेतावनी देने, और एक जैसी सुविधाएं देने के लिए, लाइब्रेरी में लॉगिंग की सुविधा को फिर से तैयार किया गया है.
- एक साथ कई बटन दबाने के लिए,
UiDevice#pressKeyCodes
जोड़ा गया. उदाहरण के लिए, स्क्रीनशॉट लेने के लिए POWER और VOLUME_DOWN बटन दबाना (22e525). - तरीके के नाम (4e2f65) में टाइपो ठीक करने के लिए,
UiDevice#setCompressedLayoutHierarchy
जोड़ा गया औरUiDevice#setCompressedLayoutHeirarchy
को हटा दिया गया. UiAutomatorInstrumentationTestRunner
को 'इस्तेमाल नहीं किया जा सकता' के तौर पर मार्क किया गया है, क्योंकि यहUiAutomatorTestCase
को मैनेज करता है और अब इसकी ज़रूरत नहीं है (be6c85).- उपयोगकर्ता के जेस्चर को बेहतर तरीके से एमुलेट करने के लिए,
UiObject2
MotionEvent
के बीच के इंतज़ार को डिसप्ले के रीफ़्रेश रेट से दोगुना किया गया (454450). - एक से ज़्यादा लाइन वाले टेक्स्ट और ब्यौरे से मैच करने की सुविधा जोड़ी गई (1625e6, b/255787130).
गड़बड़ियां ठीक की गईं
- ऑब्जेक्ट के लिए क्वेरी करते समय या उनकी प्रतीक्षा करते समय, कभी-कभी
StaleObjectException
s को ठीक किया जा रहा है (4cbcc0). UiScrollable#scrollToBeginning
,scrollToEnd
,flingToBeginning
, औरflingToEnd
की रिटर्न वैल्यू को ठीक किया गया, ताकि यह पता चल सके कि शुरुआत/आखिर में पहुंचा गया है या नहीं (d33e06).- कॉन्फ़िगर किए गए टाइम आउट (29e4f3) को अनदेखा करने वाले
UiScrollable#scrollForward
औरscrollBackward
तरीकों को ठीक किया गया. 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 वर्शन में ये बदलाव शामिल हैं.
एपीआई में हुए बदलाव
- सभी सार्वजनिक तरीकों के लिए, एनोटेट किया गया है कि वे शून्य हैं.
UiObject2
जेस्चर को आसान बनाने के लिए,MotionEvent
इंजेक्शन को असाइनोक्रोनस मोड पर स्विच किया गया.- इंतज़ार के दौरान, पोलिंग इंटरवल को 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).