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

Android SDK

ניתן להוריד את ה-SDK מ: developer.android.com/sdk/

דרישות לגבי מכשירים

החל מגרסה 33 של Chrome, לא נדרש יותר מכשיר עם הרשאות בסיס. אם מתבצעות בדיקות בגרסאות קודמות של Chrome, המכשירים היו צריכים לעבור תהליך רוט (Root) כ-ChromeDriver כדי להגדיר את הפקודה של Chrome נדרשת גישת כתיבה לספרייה /data/local ארגומנטים של שורות.

הפעלת ChromeDriver

  1. מפעילים את שרת Android Debug Bridge (adb) של Android SDK:

    $ 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