Хотя не имея вашего окружения, я изучил проблему. Как и вы, можно найти различные статьи, которые, кажется, всегда работают для некоторых людей, но не для других. Я пришел к выводу, что существуют различия между комбинациями аппаратного телефона / Android-версии / SDK-версии, которые делают его таким, что не существует единого решения для всех настроек.
Вам нужно будет выяснить, что работает для вас. помните, что серьезное обновление программного обеспечения всегда может вернуть вас к исходной точке.
Самый простой метод, который я нашел, это использовать input tap x y
команду:
adb shell input tap x y
Не во всех input
версиях есть tap
параметр, но запуск его без аргументов выведет все доступные параметры и синтаксис:
shell@m0:/ $ input input usage: input ... input text <string> input keyevent <key code number or name> input [touchscreen|touchpad|touchnavigation] tap <x> <y> input [touchscreen|touchpad|touchnavigation] swipe <x1> <y1> <x2> <y2> [duration(ms)] input trackball press input trackball roll <dx> <dy>
Другой способ - использовать Getevent для записи событий, которые происходят при касании экрана. Как взято отсюда :
Запишите серию событий
Настройте компьютер для записи данных в файл (
/tmp/android-touch-events.log
)$ adb shell getevent | grep --line-buffered ^/ | tee /tmp/android-touch-events.log
- сделать что-нибудь по телефону
- остановите команду adb на компьютере с помощью
ctrl-c
Воспроизвести записанные события
Эта команда выполнит шестнадцатеричное преобразование в
awk
$ awk '' /tmp/android-touch-events.log | xargs -l adb shell sendevent
Остерегайтесь ошибки, что Getevent отображает свои параметры в шестнадцатеричном виде, но принимает ввод только в десятичном виде, что пытается исправить приведенный выше скрипт.
monkeyrunner - это еще один инструмент, который вы можете использовать, как показано здесь :
Вы можете использовать monkeyrunner, как это:
$ monkeyrunner >>> from com.android.monkeyrunner import MonkeyRunner, MonkeyDevice >>> device = MonkeyRunner.waitForConnection() >>> device.touch(200, 400, MonkeyDevice.DOWN_AND_UP)
Вы также можете выполнить перетаскивание, запустить активацию и т. Д. Посмотрите API для MonkeyDevice .
Рекомендации: