Android

التبعيات

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

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

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

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

روابط اللغة Selenium WebDriver

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

$ pip install selenium

حزمة تطوير البرامج (SDK) لنظام التشغيل Android

يمكن تنزيل حزمة تطوير البرامج (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 Shell لديه إذن وصول للقراءة/الكتابة إلى الدليل المحلي /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. على سبيل المثال، يظهر اختبار بايثون البسيط على النحو التالي:

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