如何使用python在Android设备上通过ADB调用命令?

时间:2019-05-10 10:54:03

标签: python-3.x windows adb

我正在使用Appium和Python 3.x编写针对android设备的自动测试。我想使用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 /文件名)。 相反,我得到以下输出:

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

2 个答案:

答案 0 :(得分:0)

请使用(\w|:\)|:\(|#|@| ) start_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/

示例代码如下。

stop_recording_screen()

答案 1 :(得分:0)

如果要使用adb shell,请按以下方式使用execute_script('mobile:shell', data)

data = {"command": "ls", "args": ["-l"]}
text = driver.execute_script('mobile:shell', data)

另请参阅 http://appium.io/docs/en/commands/mobile-command/