依赖项
ChromeDriver 的二进制文件可打包为 ZIP 文件,适用于各种主机 平台(位于下载页面上)。
支持的应用
ChromeDriver 支持在 Chrome 浏览器(版本 30 及更高版本)上运行测试, 从 Android 4.4 (KitKat) 开始,基于 WebView 的应用,已启用网络调试和 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 版开始,不再需要已取得 root 权限的设备。如果运行测试
在较低版本的 Chrome 上,需要以 ChromeDriver 的形式获取 root 权限
需要对 /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 选项。
如果未指定序列号,服务器则会在以下位置选择一个未使用的设备: 与每个会话相关联。如果所有设备都返回错误, 已经有进行中的会话,因此测试应确保在 已完成。
连接到wd/hub
如果您的测试预期会连接到 wd/hub
,您可以添加 --url-base=wd/hub
启动服务器时:
$ ./chromedriver --url-base=wd/hub