Зависимости
Двоичные файлы для 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/ ). Например, привязки языка для Python можно установить с помощью pip.
$ pip install selenium
Android SDK
SDK можно загрузить с сайта Developer.android.com/sdk/.
Требования к устройству
Начиная с версии Chrome 33, рутированное устройство больше не требуется. При выполнении тестов на более ранних версиях Chrome устройства необходимо было рутировать, поскольку ChromeDriver требовал доступ на запись в каталог /data/local
для установки аргументов командной строки Chrome.
Запустите ChromeDriver
Запустите сервер Android Debug Bridge (adb) из Android SDK:
$ adb start-server
При тестировании приложения Chrome до версии 33 убедитесь, что оболочка adb имеет доступ на чтение/запись к каталогу /data/local на устройстве:
$ adb shell su -c chmod 777 /data/local
Обычно рекомендуется запускать ChromeDriver через библиотеку Selenium, хотя вы также можете запустить его вручную из командной строки. Дополнительные сведения см. в разделе Начало работы.
$ ./chromedriver
Параметры для Android
Следующие параметры Chrome применимы как к приложениям Chrome, так и к приложениям WebView:
-
androidPackage
: имя пакета приложения Chrome или WebView. -
androidDeviceSerial
: (необязательно) Серийный номер устройства, на котором нужно запустить приложение (см. раздел «Несколько устройств» ниже). -
androidUseRunningApp
: (Необязательно) Прикрепите к уже работающему приложению вместо запуска приложения с чистым каталогом данных.
Следующие возможности применимы только к приложениям WebView.
- androidActivity : имя действия, в котором размещен WebView.
- androidProcess : (Необязательно) Имя процесса действия, в котором размещен WebView (как указано в ps). Если оно не указано, предполагается, что имя процесса такое же, как
androidPackage
.
Запустить тест
Тесты должны передавать имя пакета приложения в ChromeDriver через параметр androidPackage
. Например, минимальный тест 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