第一个模块python控制adb,通过adb截图
一 ,前面我们已经封装了adb获取设备信息,我们通过上次封装确认adb的连接状态,然后通过adb实现截图功能.
我们在ADB目录下新建adb_screencap.py的文件一个代码如下:
import subprocess
import time
import os
from ADB.adb_devices import check_adb_status
def adb_Screencap(devices):
if check_adb_status(devices):
os.system("adb -s {} root".format(devices))
print("已执行root")
time.sleep(10)
screencap = subprocess.call("adb shell /system/bin/screencap -p /sdcard/screenshot.png", shell=True) # /sdcard/screenshot.png 设备路径+图片名字 此处设置变量,这边为方便调试暂时为固定路径
if screencap == 0:
print("截图成功")
pull = subprocess.call("adb pull /sdcard/screenshot.png", shell=True) ## /sdcard/screenshot.png 本地路径+设备路径+图片名字 此处设置变量,这边为方便调试暂时为固定路径
if pull == 0:
print("pull截图到当前目录成功")
rm = subprocess.call("adb shell rm /sdcard/screenshot.png", shell=True)
if rm == 0:
print("成功删除设备中冗余图片")
else:
print("未删除图移动设备中冗余图片")
else:
print("pull失败")
else:
print("截图失败")
else:
print("设备未连接,请检查")
if __name__ == '__main__':
adb_Screencap(devices="TNS000000044200002fd")
二 ,调试运行,结果如下:
我们在ADB目录下可以看到一个screenshot.png图片
面板输出:
此处有个坑,一定要保持设备时可以读写以及文件的正确