Как вызвать команду через ADB на устройстве Android с помощью Python? - PullRequest
0 голосов
/ 10 мая 2019

Я пишу автоматические тесты для устройств Android с использованием Appium и Python 3.x. Я хочу использовать python для вызова команды adb shell screenrecord video.mp4 для записи видео с устройства. Затем он должен продолжать запись в течение некоторого времени и завершить процесс записи.

Похоже, что shell не "видит" аргумент с именем файла.

import subprocess
import time
import os

def record():
    timestamp = time.strftime("%d/%m/%Y %H%M%S")
    command = ["adb", "shell","screenrecord","video%s.mp4" % timestamp]
    process = subprocess.Popen(command)
    time.sleep(5)
    process.kill()


subprocess.call('adb connect 192.168.2.128:5555', shell=True)
record()
subprocess.call('adb disconnect', shell=True)

Я ожидал, что код запишет его и сохранит в указанном месте (/ sdcard / filename). Вместо этого я получаю этот вывод:

already connected to 192.168.2.128:5555
Must specify output file (see --help).
disconnected everything

1 Ответ

0 голосов
/ 11 мая 2019

Пожалуйста, используйте start_recording_screen(), stop_recording_screen() для записи экрана.

http://appium.io/docs/en/commands/device/recording-screen/start-recording-screen/ http://appium.io/docs/en/commands/device/recording-screen/stop-recording-screen/

Примеры кодов, как показано ниже.

self.driver.start_recording_screen()

import time
time.sleep(5)

payload = self.driver.stop_recording_screen()
with open("cap.mp4", "wb") as fd:
    import base64
    fd.write(base64.b64decode(payload))

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...