Android

יחסי תלות

ניתן למצוא את הקבצים הבינאריים של ChromeDriver בחבילה כקובצי zip לפלטפורמות מארחות שונות בדף Downloads (הורדות).

אפליקציות נתמכות

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 חייב גישת כתיבה לספרייה /data/local כדי להגדיר ארגומנטים של שורת הפקודה של Chrome.

הפעלת ChromeDrive

  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