@StephanBlackStar gbu :)
Android Manager - модуль для управления android эмуляторами
-
Название: 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 работает модуль?
DeviceIsNotRunningErrorinvalid 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
Отправить на пиво :)
Модуль разрабатывается и поддерживается совершенно бесплатно. При этом на это тратится много сил и времени. Вы можете поддержать проект, отправив любую сумму. Это очень поможет в его дальнейшем развитии и внедрении нового функционала. Реквизиты под хайдом.
-
Большое спасибо за ваши усилия. Я проверю это.
-
@alex911 если речь про рекапчу (Google Safetynet), то она решается кликами. Для этого получаешь текст капчи и координаты области с изображениями. Делаешь скрин экрана. Получаешь размер экрана девайса. И кропишь изображение по координатам разницы между размером экрана и коррдинат картинок на капче. Текст и картинки отправляешь на сервис. В общем, также как и в обычном браузере.
В планах сделать экшен, который будет это все автоматизировать. Но это после решения проблемы с многопотоком. Вот тут писал.
-
@thepappo все сделал по инструкции которая в теме.не получается подключиться к эмулятору. помоги пожалуйста.
[710179332] [21:55:44] Поток №1 : Error: uiautomator-server: Error occured while getting installed APKs Command failed: adb -s shell pm list packages adb.exe: unknown command pm -
@thepappo said in AndroidManager - модуль для управления android эмуляторами:
adb devices
эмуль нокс.
C:\Users\Professional>adb devices
adb server version (36) doesn't match this client (41); killing...- daemon started successfully
List of devices attached
- daemon started successfully
-
@alex911 судя по логу ни один эмулятор не запущен. Запущенные девайсы имеют вид типа такого:
List of devices attached 127.0.0.1:21503 deviceДля фикса нужно скачать утилиту gow.exe. После установки перезапустить ПК. Эта утилита позволяет выполнять linux команды в Windows.
После установки выполнить:
where adbЕсли все ок, то должно вывести только один путь, этот, в папке с Sdk:
C:\Users\<USER_NAME>\AppData\Local\Android\Sdk\platform-tools\adb.exeЭтот путь берется из переменных среды. Часто при установке эмулятора, типа Nox или MEmu, они автоматически записывают свой путь в перменные среды, и в их папке тоже есть adb. Поэтому для фикса нужно переименовать adb.exe в папке эмулятора, например, в _adb.exe.
Все конфликтные пути к adb, опять же, видно при выполнении команды where adb. После переименования выполняем эту команду еще раз, в ее выводе должен остаться только один путь к Android Sdk, либо он должен идти первым.
Важно!
- Прежде чем задать вопрос, внимательно прочитайте тему. 90% что ваш вопрос уже решен и его решение уже расписано мной или кем-то из участников форума.
- Если не нашли ответа, гуглите. Это не сложно.
- Я не отвечаю в тг или в ЛС. Все кто пишут в тг блокируются.
- Если вы сами не хотите ни в чем разбираться и хотите чтобы я вам написал скрипт "где все просто и надо пару кнопок нажать" - можно. Цена от 40к.
Уважайте чужое время,
-
@alex911 said in AndroidManager - модуль для управления android эмуляторами:
@thepappo said in AndroidManager - модуль для управления android эмуляторами:
where adb
после манипуляций у меня такой ответ!

но в итоге в басе всеравно не конектится(
-
This post is deleted!
-
