Название: AndroidManager
Версия: 2.8
Данные: AndroidManager.zip
Исходник: AndroidManager2.8.xml
Согласие на добавление модуля в BAS: Да
История версий:

Модуль позволяет автоматизировать популярные действия на мобильных эмуляторах на базе Android. В работе используется сервер appium и драйвер uiautomator2, а для подключения к appium серверу - пакет webdriverio.
Возможности модуля:
- Многопоток за счет асинхронности. Работает быстрее большинства аналогичных open-source библиотек с классической многопоточностью.
- Возможность искать элементы по xpath, а не набору аттрибутов.
- Добавлены все популярные adb команды, а также действия, которых нет в appium, либо в webdriverio.
Инструкция по установке
- Скачать и установить Java jdk. Выбрать нужно версию Windows x64 Installer и именно jdk, а не jre и другие. На данный момент файл называется jdk-8u341-windows-x64.exe.
- Правый клик по "Мой компьютер" > "Дополнительные параметры системы" > "Переменные среды". В нижнем окне (системные переменные) нажать "Создать" и прописать название переменной JAVA_HOME, а в значении указать путь к установленной Java на предыдущем шаге.

- Скачать и установить Android Studio.
- Запустить Android Studio и нажать More actions.

- Выбрать пункт SDK Manager.

- Перейти на вкладку SDK Tools и установить Build-Tools и Platform-Tools, как на скрине. Если планируется подключать реальные телефоны, то нужно также установить Google USB Driver и Google Web Driver.

- Перейти обратно в "Переменные среды" (см. п.2). В переменных среды пользователя (верхнее окно) нажать "Создать" и прописать переменную ANDROID_HOME, значением которой указать путь к папке SDK.

- В нижнем окне найти переменную Path, выделить ее и нажать "Изменить".

- Добавить пути к папке bin в директории jdk, папкам SDK/platform-tools и SDK/build-tools.

- Скачать и установить Node JS. После установки нода предложит перезапустить ПК. Согласиться и перезапустить.
- Установить appium:
npm install -g appium
- Установить драйвер uiautomator2:
appium driver install uiautomator2
- Установить appium-doctor:
npm install -g appium-doctor
- Запустить appium-doctor с флагом --android для проверки, что все зависимости корректно установлены в системе.
appium-doctor --android
Отмеченные на скрине пункты у вас тоже должны быть зелеными.

Если на момент выполнения действий из данной инструкции в системе уже были установлены эмуляторы (Nox, MEmu и т.п.), то зачастую у них есть свои файлы adb.exe, которые также прописаны в переменных среды. В этом случае при подключении будет использоваться какой-то из этих файлов, а не adb из SDK.
Для фикса достаточно переименовать файлы adb в папке с эмулятором, например в _adb.exe.
Чтобы проверить расположение файлов adb в системе, нужно скачать утилиту gow.exe. После установки перезагрузить ПК.
После этого можно выполнить команду:
where adb
Она покажет пути к файлам adb, которые видимт система. Первый путь должен вести к папке SDK и быть примерно таким:
C:\Users\username\AppData\Local\Android\Sdk\platform-tools\adb.exe
Инструкция по запуску
Для взаимодействия с эмуляторами требуется запустить сервер appium. Делать это можно автоматически через модуль действием "Запустить сервер". Однако часто запущенный таким образом сервер не видит библиотека webdriverio. Поэтому настоятельно рекомендуется перед стартом вашего шаблона запускать сервер appium вручную. Делается это командой:
appium -a 127.0.0.1 -p 4723 --base-path /wd/hub
где 127.0.0.1 - IP, на котором запускается сервер, 4723 - порт.
Если сервер запустился, то вы увидите примерно такой вывод:

Окно консоли нужно оставить открытым на все время работы шаблона. Чтобы остановить сервер, нужно в консоли нажать Ctrl+C.
Appium рекомендуется запускать на дефолтном порту 4723. Т.к. другой рандомный порт может быть уже занят каким-то системным процессом.
Пример шаблона
Шаблон, который устанавливает прокси на эмуляторы, а также позволяет включать прокси, если он выключен через приложение Drony: Drony.xml
F.A.Q
На каких эмуляторах и версиях android работает модуль?
DeviceIsNotRunningError
invalid session id: A session is either terminated or not started
При запуске скрипта пустое окно Node 18.10.0 и ничего не происходит
Процесс завершился с кодом 255. Ошибка: "grep"...
Не установлен uiautomatorviewer
Как перезапустить сервер appium?
The requested resource could not be found, or a request was received using an HTTP method that is not supported by the mapped resource
Отправить на пиво :)
Модуль разрабатывается и поддерживается совершенно бесплатно. При этом на это тратится много сил и времени. Вы можете поддержать проект, отправив любую сумму. Это очень поможет в его дальнейшем развитии и внедрении нового функционала. Реквизиты под хайдом.