依附元件
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
啟動 Android SDK 的 Android Debug Bridge (ADB) 伺服器:
$ adb start-server
如果是在 33 以下版本的 Chrome 應用程式上測試,請確認 ADB 殼層擁有裝置上/data /local 目錄的讀取/寫入權限:
$ adb shell su -c chmod 777 /data/local
通常建議你透過 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