Android

Зависимости

Двоичные файлы для 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

  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