Android

التبعيات

يمكن العثور على ثنائيات ChromeDriver في حزمة كملفات ZIP لمضيف مختلف المنصات على صفحة عمليات التنزيل.

التطبيقات المتوافقة

يتوافق ChromeDriver مع إجراء الاختبارات على متصفّح Chrome (الإصدار 30 والإصدارات الأحدث). التطبيقات المستندة إلى WebView بدءًا من Android 4.4 (KitKat) والتي تم فيها تفعيل تصحيح أخطاء الويب وJavaScript. يمكنك تثبيت تطبيق Chrome من:

القناة الثابتة: https://play.google.com/store/apps/details?id=com.android.chrome

روابط لغة سيلينيوم WebDriver

يجب تثبيت روابط اللغة لمشروع السيلينيوم القياسي WebDriver باللغة التي تختارها لكتابة اختباراتك. تتوفّر هذه المكتبة من مدير الحزم المحلي الودود أو مشروع السيلينيوم (https://www.seleniumhq.org/download/). على سبيل المثال، يمكن تثبيت روابط اللغة في بايثون باستخدام pip.

$ pip install selenium

Android SDK

يمكن تنزيل حزمة SDK من developer.android.com/sdk/

متطلبات الأجهزة

اعتبارًا من الإصدار 33 من Chrome، لم يعُد من الضروري استخدام جهاز جذر. في حال إجراء اختبارات في الإصدارات الأقدم من Chrome، يجب ربط الأجهزة بإذن الوصول إلى الجذر في ChromeDriver. يجب منح إذن بالتعديل في دليل /data/local لضبط أمر Chrome. وسيطات الأسطر.

تشغيل ChromeDriver

  1. ابدأ خادم Android Debug Bridge (adb) لحزمة تطوير البرامج (SDK) لنظام التشغيل Android:

    $ adb start-server
    
  2. في حال إجراء اختبار على تطبيق Chrome قبل الإصدار 33، تأكَّد من أنّ واجهة أوامر adb تملك إذن الوصول للقراءة/الكتابة إلى الدليل /data/local على الجهاز:

     $ adb shell su -c chmod 777 /data/local
    
  3. يوصى عمومًا ببدء تشغيل ChromeDriver من خلال مكتبة Selenium، على الرغم من أنه يمكنك أيضًا تشغيله يدويًا من سطر الأوامر. يُرجى الاطّلاع على "البدء" للحصول على مزيد من المعلومات.

    $ ./chromedriver
    

الخيارات الخاصة بنظام التشغيل Android

تنطبق خيارات Chrome التالية على كل من تطبيقات Chrome وتطبيقات WebView:

  • androidPackage: اسم حزمة تطبيق Chrome أو WebView
  • androidDeviceSerial: (اختياري) الرقم التسلسلي للجهاز المطلوب تشغيل التطبيق عليه (راجِع قسم "أجهزة متعددة" أدناه)
  • androidUseRunningApp: (اختياري) إرفاق الملف بتطبيق قيد التشغيل بدلاً من تشغيل التطبيق بدليل بيانات واضح.

لا تنطبق الإمكانات التالية إلا على تطبيقات WebView.

  • androidActivity: اسم النشاط الذي يستضيف WebView
  • androidProcess: (اختياري) اسم العملية للنشاط الذي يستضيف WebView (على النحو الموضَّح في ps). وإذا لم يتم تقديمها، يتم افتراض أن يكون اسم العملية هو نفسه androidPackage.

إجراء اختبار

ويجب أن تمرِّر الاختبارات اسم حزمة التطبيق إلى ChromeDriver من خلال الخيار androidPackage. على سبيل المثال، يبدو الحد الأدنى من اختبار Python على النحو التالي:

from selenium import webdriver
options = webdriver.ChromeOptions()
options.add_experimental_option('androidPackage', 'com.android.chrome')
driver = webdriver.Chrome('./chromedriver', options=options)
driver.get('https://google.com')
driver.quit()

أجهزة متعددة

لاستخدام جهاز معيَّن لجلسة معيَّنة، حدِّد androidDeviceSerial Chrome.

وإذا لم يتم تحديد الرقم التسلسلي، فسيختار الخادم جهازًا غير مستخدَم في عشوائيًا لربطها بكل جلسة. يظهر خطأ إذا كانت جميع الأجهزة تحتوي الاختبارات على جلسات نشطة حاليًا، لذا يجب أن تتأكد الاختبارات من إنهاء المكالمة عند منتهٍ.

الربط بحساب "wd/hub"

إذا كان من المتوقّع أن ترتبط اختباراتك بـ "wd/hub"، يمكنك إضافة "--url-base=wd/hub". عند تشغيل الخادم:

$ ./chromedriver --url-base=wd/hub