Android

Последние двоичные файлы ChromeDriver упакованы в виде zip-файлов для различных хост-платформ.

Более ранние версии ChromeDriver можно найти в разделе «Загрузки» .

Поддерживаемые приложения

ChromeDriver поддерживает запуск тестов в браузере Chrome (версия 30+) и приложениях на основе WebView, начиная с Android 4.4 (KitKat) , в которых включена веб-отладка и JavaScript .

Вы можете установить приложение Chrome отсюда:

Стабильная версия: https://play.google.com/store/apps/details?id=com.android.chrome.

Языковые привязки Selenium WebDriver

Для написания тестов необходимо установить стандартные языковые привязки WebDriver проекта Selenium для выбранного вами языка. Эта библиотека доступна в вашем локальном менеджере пакетов или проекте Selenium .

Например, привязки языка для Python можно установить с помощью pip.

$ pip install selenium

Android SDK

SDK можно загрузить с сайта Developer.android.com/sdk/ .

Требования к устройству

Начиная с версии Chrome 33, рутированное устройство не требуется. При выполнении тестов в более ранних версиях Chrome устройства должны быть рутированы, поскольку ChromeDriver требовал доступ на запись в каталог /data/local для установки аргументов командной строки Chrome.

Запустите ChromeDriver

  1. Запустите сервер Android Debug Bridge (adb) из Android SDK:

    $ adb start-server
    
  2. При тестировании приложения Chrome до версии 33 убедитесь, что оболочка adb имеет доступ на чтение и запись в каталог /data/local на устройстве:

    $ adb shell su -c chmod 777 /data/local
    
  3. Мы рекомендуем запускать 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