يتعامل كالاباش مع مربع حوار "إكمال الإجراء باستخدام".
-
21-12-2019 - |
سؤال
أرغب في اختبار وظيفة المشاركة لأحد التطبيقات ولكن ليس لدي أي فكرة عن كيفية التعامل مع مربع حوار android "إكمال الإجراء باستخدام" (Facebook وGmail وما إلى ذلك)
عندما أستخدم query("*")
فهو يقوم بإرجاع مجموعة فارغة من الحقول.
هل هناك أي طريقة للتعامل مع مربعات حوار النظام باستخدام Calabash أو أي طريقة أخرى لاختبار وظيفة مثل المشاركة؟
أقوم بإجراء اختباراتي على الجهاز الفعلي.
يحرر:إذا لم تكن هناك طريقة للتحقق مما إذا كان مربع الحوار قد تم فتحه أم لا، فربما يكون من الممكن استخدام adb Shell أو شيء من هذا القبيل؟
المحلول
إنه ليس حلاً أنيقًا للغاية ولكن يمكنك محاكاة لمسات الشاشة باستخدام adb.هناك إجابة تغطيها هنا - محاكاة اللمس باستخدام ADB
يحرر:إضافة بعض التفاصيل حول استخدام adb لتفريغ ملف بجميع عناصر واجهة المستخدم.
في Android sdk في مجلد الأنظمة الأساسية/android-L توجد أداة تسمى uiautomater.jar والتي يمكن أن يستخدمها adb لإجراء الاختبارات (على الرغم من أنني لم أستخدمها مطلقًا لذلك) ولتفريغ ملف xml للعناصر المرئية.
adb shell uiautomator dump test.xml
سيقوم بإنشاء ملف xml (على الجهاز وليس على جهاز الكمبيوتر الخاص بك) والذي يمكنك بعد ذلك البحث فيه في التعليمات البرمجية الخاصة بك للتحقق من النافذة المنبثقة التي تريدها.إذا كنت تريد التفاعل مع النافذة المنبثقة، فيمكنك استخدام الإحداثيات الواردة في تفريغ XML لاختيار الإحداثيات التي تريدها واستخدام حدث adb touch للنقر عليها.
ليس حلاً جميلاً ولكن نأمل ألا يكون من الصعب جدًا العمل في اختباراتك :)