最新的 ChromeDriver 二进制文件已打包为适用于各种主机平台的 ZIP 文件。
您可以在下载部分找到较低版本的 ChromeDriver。
支持的应用
ChromeDriver 支持在 Chrome 浏览器(30 及更高版本)以及启用了Web 调试和 JavaScript 的 Android 4.4 (KitKat) 及更高版本中基于 WebView 的应用上运行测试。
您可以通过以下方式安装 Chrome 应用:
稳定版:https://play.google.com/store/apps/details?id=com.android.chrome
Selenium WebDriver 语言绑定
您需要为所选语言安装标准 Selenium 项目 WebDriver 语言绑定,才能编写测试。此库可在您的本地软件包管理器或 Selenium 项目中找到。
例如,您可以使用 pip 安装 Python 的语言绑定。
$ pip install selenium
Android SDK
您可以访问 developer.android.com/sdk/ 下载该 SDK。
设备要求
从 Chrome 版本 33 开始,无需使用已取得 root 权限的设备。如果要在较低版本的 Chrome 上运行测试,设备必须取得 root 权限,因为 ChromeDriver 需要对 /data/local
目录拥有写入权限,才能设置 Chrome 的命令行参数。
运行 ChromeDriver
启动 Android SDK 的 Android 调试桥 (adb) 服务器:
$ adb start-server
如果在版本 33 之前的 Chrome 应用上进行测试,请确保 adb shell 对设备上的
/data/local
目录具有读写权限:$ adb shell su -c chmod 777 /data/local
我们建议您通过 Selenium 库启动 ChromeDriver,但您也可以通过命令行手动启动它。
$ ./chromedriver
仅限 Android 的选项
以下 Chrome 选项适用于 Chrome 和 WebView 应用:
androidPackage
:Chrome 或 WebView 应用的软件包名称。androidDeviceSerial
:(可选)用于启动应用的设备序列号(请参阅下文中的“多部设备”部分)。androidUseRunningApp
:(可选)附加到已在运行的应用,而不是使用清除的数据目录启动应用。
以下功能仅适用于 WebView 应用。
- androidActivity:托管 WebView 的 activity 的名称。
- androidProcess:(可选)托管 WebView 的 activity 的进程名称(由 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 选项。
如果未指定序列号,服务器会随机选择一个未使用的设备与每个会话相关联。如果所有设备都已拥有有效会话,则会返回错误,因此测试应确保在完成时调用 quit。
连接到wd/hub
如果您的测试预计会连接到 wd/hub
,您可以在启动服务器时添加 --url-base=wd/hub
:
$ ./chromedriver --url-base=wd/hub