Test Uiautomator
| آخر الأخبار | الإصدار الثابت | إصدار محتمل | الإصدار التجريبي | الإصدار الأوّلي |
|---|---|---|---|---|
| 3 ديسمبر 2025 | 2.3.0 | - | - | 2.4.0-alpha07 |
تحديد الاعتماديات
لإضافة اعتمادية على الاختبار، يجب تضمين مستودع Google Maven في مشروعك. اطّلِع على مستودع Maven من Google لمزيد من المعلومات.
أضِف الاعتماديات الخاصة بالعناصر التي تحتاج إليها في ملف build.gradle لتطبيقك أو وحدتك:
Groovy
dependencies { // Use to implement UIAutomator tests androidTestImplementation "androidx.test.uiautomator:uiautomator:2.4.0-alpha07" }
Kotlin
dependencies { // Use to implement UIAutomator tests androidTestImplementation("androidx.test.uiautomator:uiautomator:2.4.0-alpha07") }
لمزيد من المعلومات حول الاعتماديات، يُرجى الاطّلاع على إضافة اعتماديات البناء.
الملاحظات
تساعدنا ملاحظاتك في تحسين Jetpack. يُرجى إعلامنا إذا اكتشفت مشاكل جديدة أو كانت لديك أفكار لتحسين هذه المكتبة. يُرجى الاطّلاع على المشاكل الحالية في هذه المكتبة قبل إنشاء مكتبة جديدة. يمكنك إضافة صوتك إلى مشكلة حالية من خلال النقر على زر النجمة.
يُرجى الاطّلاع على مستندات Issue Tracker للحصول على مزيد من المعلومات.
Test Uiautomator Shell Version 1.0
الإصدار 1.0.0-alpha03
3 ديسمبر 2025
تم طرح androidx.test.uiautomator:uiautomator-shell:1.0.0-alpha03. يتضمّن الإصدار 1.0.0-alpha03 هذه التعديلات.
تغييرات واجهة برمجة التطبيقات
- تم تغيير
startActivitywait إلى wait for new window (I35da6، b/440021797) - تم تعديل
screenSizePixelفيRecorderCommands(If558c، b/429173157)
الإصدار 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 shell لتنفيذ أوامر shell كمستخدم shell تتيح هذه المكتبة قراءة stdout وstderr والكتابة في stdin لعملية sh يتم تشغيلها بواسطة shell. في الواقع، يتم نقل
UiAutomation#executeShellCommandRweالتي تم تقديمها في الإصدار 34 من واجهة برمجة التطبيقات إلى الإصدارات القديمة.
الإصدار 2.4
الإصدار 2.4.0-alpha07
3 ديسمبر 2025
تم طرح androidx.test.uiautomator:uiautomator:2.4.0-alpha07. يتضمّن الإصدار 2.4.0-alpha07 هذه التعديلات.
تغييرات واجهة برمجة التطبيقات
- تم تغيير
startActivitywait إلى wait for new window. ويجعل ذلك عملية التشغيل متزامنة بشكل عام، ويسمح للإصدارات المستقبلية من Macrobenchmark بضبط عملية رصد اكتمال التشغيل. (I35da6 وId6e6f وb/440021797) - تمت إزالة واجهة برمجة التطبيقات بدون اسم حزمة صريح في
UiAutomatorTestScope. (I8c285، b/413417205)
الإصدار 2.4.0-alpha06
13 أغسطس 2025
تم طرح androidx.test.uiautomator:uiautomator:2.4.0-alpha06. يتضمّن الإصدار 2.4.0-alpha06 هذه التعديلات.
الميزات الجديدة
- تمت إضافة واجهات برمجة تطبيقات مستندة إلى النوافذ لتحسين اختبار النوافذ المتعددة، أي يمكن الآن استخدام
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 هذه التعديلات.
تغييرات واجهة برمجة التطبيقات
- تمت إضافة
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لتوضيح أنّها تعمل مع 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 هذه التعديلات.
إصلاح الأخطاء
- تم إصلاح مشكلة طرح استثناء NullPointerException في
waitForStableInActiveWindowفي بعض الحالات (Ibf50f، b/417046391)
الإصدار 2.4.0-alpha02
7 مايو 2025
تم طرح androidx.test.uiautomator:uiautomator:2.4.0-alpha02. يتضمّن الإصدار 2.4.0-alpha02 هذه التعديلات.
الميزات الجديدة
- الشكل الأوّلي لواجهة برمجة التطبيقات الجديدة
Uiautomatorيمكن إنشاءUiAutomatorTestScopeمن خلال المصنعuiAutomatorالذي يتيح الوصول إلى واجهات برمجة التطبيقات الجديدةonView. - قواعد Lint الأولية للتحذير من استخدام
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).
- تم إصلاح الأخطاء
StaleObjectExceptionالتي تحدث عند طلبtoStringأوhashCodeعلىUiObject2قديم. (I38ea1). - تحسين أداء
UiWatcherمن خلال تخطّي طلباتwaitForIdleغير الضرورية (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 هذه التعديلات.
تغييرات واجهة برمجة التطبيقات
- تمت إضافة
UiObject2#getDrawingOrderلعرض معلومات ترتيب الرسم (z-index). (I5dfa4). - تمت إضافة طرق
UiDeviceللحصول على دوران الشاشات الثانوية وضبطه وتجميده وإلغاء تجميده. (I912cd).
إصلاح الأخطاء
- تمت إضافة محاولة إعادة التشغيل إلى
UiObject2#scrollUntilعندما يتعذّر رصد نهاية التمرير (Ibac6f). - تم إصلاح المشكلة التي كان فيها
UiDeviceيستخدم نسخة قديمة منInstrumentationفي حال إعادة إنشائها (I18cae). - تم إصلاح خطأ محتمل في NPE إذا تعذّر تحديد معرّف العرض عند تفريغ العُقد (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لاسترداد نص تلميح أحد العناصر، وطريقتَي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 هذه التعديلات.
تغييرات واجهة برمجة التطبيقات
- تم عرض واجهة
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). - تم إصلاح مشكلة عدم تنفيذ
UiWatchers بالترتيب الصحيح (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). - تمت إضافة
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 هذه التعديلات.
تغييرات واجهة برمجة التطبيقات
- تمت إضافة تعليقات توضيحية إلى قيمة عدم التحديد لجميع الطرق العامة.
- تمت إضافة ميزة
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).