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 語言繫結

您需要為撰寫測試選擇的語言安裝標準 Selenium 專案 WebDriver 語言繫結。您可以透過友善的本機套件管理工具或 Selenium 專案 (https://www.seleniumhq.org/download/) 取得這個程式庫。舉例來說,您可以透過 pip 安裝 Python 的語言繫結。

$ pip install selenium

Android SDK

您可以從下列位置下載 SDK developer.android.com/sdk/

裝置需求

自 Chrome 33 版起,不再需要使用已解鎖裝置。如果執行測試 搭載舊版 Chrome 的裝置,必須使用 ChromeDriver 啟用 Root 權限 需要 /data/local 目錄的寫入權限,才能設定 Chrome 的指令 即可。

執行 ChromeDriver

  1. 啟動 Android SDK 的 Android Debug Bridge (ADB) 伺服器:

    $ adb start-server
    
  2. 如果是在 33 以下版本的 Chrome 應用程式上測試,請確認 ADB 殼層擁有裝置上/data /local 目錄的讀取/寫入權限:

     $ adb shell su -c chmod 777 /data/local
    
  3. 通常建議你透過 Selenium 程式庫啟動 ChromeDriver,不過你也可以透過指令列手動啟動 ChromeDriver。詳情請參閱「開始使用」一文。

    $ ./chromedriver
    

Android 專用選項

下列 Chrome 選項同時適用於 Chrome 和 WebView 應用程式:

  • androidPackage:Chrome 或 WebView 應用程式的套件名稱。
  • androidDeviceSerial:(選用) 啟動應用程式的裝置序號 (請參閱下方的「多裝置」一節)。
  • androidUseRunningApp:(選用) 附加至已在執行中的應用程式,而不是以清除資料目錄啟動應用程式。

下列功能僅適用於 WebView 應用程式。

  • androidActivity:代管 WebView 的活動名稱。
  • androidProcess:(選用) 代管 WebView 的活動程序名稱 (以 ps 表示)。如未提供,系統會假設程序名稱與 androidPackage 相同。

執行測試

測試應透過 androidPackage 選項,將應用程式的套件名稱傳送給 ChromeDriver。舉例來說,最小的 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