Android

يتم تجميع أحدث البرامج الثنائيّة لبرنامج ChromeDriver كحِزم بتنسيق zip لأنظمة التشغيل المستضافة المختلفة.

يمكن العثور على الإصدارات السابقة من ChromeDriver في ملفاتك التي تم تنزيلها من عمليات التنزيل.

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

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

يمكنك تثبيت تطبيق Chrome من:

الإصدار الثابت: https://play.google.com/store/apps/details?id=com.android.chrome

عمليات ربط لغة Selenium WebDriver

يجب تثبيت ربطات لغة WebDriver العادية لمشروع Selenium لكتابة اختباراتك باللغة التي تختارها. تتوفّر هذه المكتبة في مدير الحِزم المحلي أو مشروع Selenium.

على سبيل المثال، يمكن تثبيت ربط اللغة في Python باستخدام 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، تأكَّد من أنّ shell 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