Android

依附元件

您可以在下載頁面,找到 ChromeDriver 的二進位檔封裝為 ZIP 檔案。

支援的應用程式

ChromeDriver 自 Android 4.4 (KitKat) 版起,適用於已啟用網路偵錯JavaScript 的 Android 4.4 版 (KitKat) 版本,可在 Chrome 瀏覽器 (30 以上版本) 和以 WebView 為基礎的應用程式上執行測試。您可以在下列位置安裝 Chrome 應用程式:

穩定版:https://play.google.com/store/apps/details?id=com.android.chrome

Selenium WebDriver 語言繫結

您必須針對用來編寫測試的語言安裝標準高階專案 WebDriver 語言繫結。這個程式庫可透過友善的本機套件管理員或 Selenium 專案 (https://www.seleniumhq.org/download/) 取得。舉例來說,Python 的語言繫結可以使用 pip 進行安裝。

$ pip install selenium

Android SDK

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

裝置需求

自 Chrome 33 版起,不再需要使用已解鎖裝置。如果在舊版 Chrome 上執行測試,裝置必須以 Root 權限的方式啟用 ChromeDriver,才能設定 Chrome 的指令列引數。/data/local

執行 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