تست Uiautomator
| آخرین به روز رسانی | انتشار پایدار | کاندید را آزاد کنید | نسخه بتا | انتشار آلفا |
|---|---|---|---|---|
| 13 آگوست 2025 | 2.3.0 | - | - | 2.4.0-alpha06 |
اعلام وابستگی ها
برای افزودن وابستگی به تست، باید مخزن Google Maven را به پروژه خود اضافه کنید. برای اطلاعات بیشتر، مخزن Maven Google را بخوانید.
وابستگیهای مصنوعات مورد نیاز خود را در فایل build.gradle برای برنامه یا ماژول خود اضافه کنید:
شیار
dependencies { // Use to implement UIAutomator tests androidTestImplementation "androidx.test.uiautomator:uiautomator:2.4.0-alpha06" }
کاتلین
dependencies { // Use to implement UIAutomator tests androidTestImplementation("androidx.test.uiautomator:uiautomator:2.4.0-alpha06") }
برای اطلاعات بیشتر درباره وابستگیها، به افزودن وابستگیهای ساخت نگاه کنید.
بازخورد
بازخورد شما به بهتر شدن Jetpack کمک می کند. اگر مسائل جدیدی کشف کردید یا ایده هایی برای بهبود این کتابخانه دارید، به ما اطلاع دهید. لطفاً قبل از ایجاد کتابخانه جدید، به مسائل موجود در این کتابخانه نگاهی بیندازید. با کلیک کردن روی دکمه ستاره می توانید رای خود را به یک موضوع موجود اضافه کنید.
برای اطلاعات بیشتر به مستندات ردیاب مشکل مراجعه کنید.
تست Uiautomator Shell نسخه 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 یک فرآیند sh راه اندازی شده توسط shell را می دهد. در واقع،
UiAutomation#executeShellCommandRweمعرفی شده در api 34 را پشتیبانی می کند.
نسخه 2.4
نسخه 2.4.0-alpha06
13 آگوست 2025
androidx.test.uiautomator:uiautomator:2.4.0-alpha06 منتشر شد. نسخه 2.4.0-alpha06 حاوی این commit ها است.
ویژگی های جدید
- APIهای مبتنی بر پنجره اضافه شده برای آزمایش چند پنجره ای بهبود یافته، به عنوان مثال
UiDevice#findWindowاکنون می تواند برای یافتن یکUiWindowخاص مطابق باByWindowSelectorساخته شده با روش های کارخانه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 حاوی این commit ها است.
تغییرات API
- نام
onViewرا بهonElementتغییر داد تا مشخص شود که با compose کار می کند ( 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 حاوی این commit ها است.
رفع اشکال
- در برخی موارد
waitForStableInActiveWindowپرتاب NPE ثابت شد ( Ibf50f , b/417046391 )
نسخه 2.4.0-alpha02
7 مه 2025
androidx.test.uiautomator:uiautomator:2.4.0-alpha02 منتشر شد. نسخه 2.4.0-alpha02 حاوی این commit ها است.
ویژگی های جدید
- شکل اولیه
UiautomatorApi جدید.UiAutomatorTestScopeمی توان از طریقuiAutomatorکارخانه ای ایجاد کرد که به apis جدیدonViewدسترسی می دهد. - قوانین Lint اولیه برای هشدار در مورد استفاده از
AccessibilityNodeInfo#getTextو پیشنهاد استفاده ازtextAsString.
تغییرات API
-
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 حاوی این commit ها است.
تغییرات API
-
Configurator#getKeyInjectionDelayوsetKeyInjectionDelayبه عنوان پارامتری که اکنون متن همیشه مستقیماً به جای فشار دادن کلید تزریق میشود، استفاده نمیشود، منسوخ شده است. ( I3bcc5 ).
رفع اشکال
- تأخیر بین رویدادهای حرکتی
UiObject2را بهروزرسانی کرد تا نرخ تازهسازی پویا (یعنی نمایشگر صاف) را در نظر بگیرد ( I43f12 ). - با باطل کردن متناوب حافظه پنهان دسترسپذیری ( I3be25 ) باعث کاهش پوسته پوسته شدن ناشی از کهنگی گره دسترسی در برخی از رابطهای کاربری خاص شد.
- هنگام فراخوانی
toStringیاhashCodeدرUiObject2قدیمی،StaleObjectExceptionثابت شد. ( I38ea1 ). - بهبود عملکرد
UiWatcherبا پرش از تماسهای غیرضروریwaitForIdle. ( I8c65e ). - رفع عدم دقت جاوادوک، به خصوص برای روشن شدن زمان استفاده از هر پارامتر
Configurator. ( Ie10b1 ، I71631 ).
نسخه 2.3.0
نسخه 2.3.0
21 فوریه 2024
androidx.test.uiautomator:uiautomator:2.3.0 منتشر شد. نسخه 2.3.0 حاوی این commit ها است.
تغییرات مهم از 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 حاوی این commit ها است.
نسخه 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 حاوی این commit ها است.
تغییرات API
-
UiObject2#getDrawingOrderبرای افشای اطلاعات ترتیب ترسیم (z-index) اضافه شد. ( 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 حاوی این commit ها است.
تغییرات 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 حاوی این commit ها است.
تغییرات 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 حاوی این commit ها است.
تغییرات API
- ثبت مجدد در سراسر کتابخانه برای ارائه اطلاعات بیشتر، هشدار در مورد مسائل احتمالی و بهبود ثبات.
-
UiDevice#pressKeyCodesبرای پشتیبانی از فشار دادن چندین کلید به طور همزمان، به عنوان مثال فشار دادن POWER و VOLUME_DOWN برای گرفتن عکس از صفحه ( 22e525 ) اضافه شد. -
UiDevice#setCompressedLayoutHierarchyوUiDevice#setCompressedLayoutHeirarchyمنسوخ شده برای رفع اشتباه تایپی در نام متد ( 4e2f65 ) اضافه شد. -
UiAutomatorInstrumentationTestRunnerبه عنوان منسوخ علامت گذاری کرد زیراUiAutomatorTestCaseهای منسوخ را مدیریت می کند و دیگر ضروری نیست ( be6c85 ). - تاخیر بین
UiObject2MotionEventبه دو برابر نرخ تازه سازی نمایشگر برای تقلید بهتر حرکات کاربر ( 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 حاوی این commit ها است.
تغییرات API
- بیهودگی تمام روش های عمومی را مشروح کرد.
- تزریق
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 ).