在前面记录了一下adb在命令行和python中的调用方式 adb获取安卓手机文件。但是发现这种方式在Airtest中并没有很好的适用性,会出现诸如:
airtest.core.error.AdbShellError: stdout[b''] stderr[b'']
类型的错误,按照修改yosemite输入法,并且设置为默认输入法的方式并没有解决。还是需要找一个合理的解决方式。
解决方案
经过查阅发现,airtest应该是在自己内部做了一层封装,对adb原生的命令做了一层转换,所以对adb命令的直接调用识别不太好,需要调用Airtest自身的adb命令,使用方式如下:
连接设备: dev = connect_device("Android:///") 执行shell命令: path = dev.shell("ls sdcard/*_2021-09-26-*.jpg|tr -d '\\n'") 注:在对应的shell命令之后,要加上去掉 '\n' 的情况。因为命令识别会多出一个\n造成识别失败。 其他adb命令: dev.adb.pull(path,'./') 注:adb.pull的操作,对应adb中的 adb pull localpath distinctpath 查看其他adb命令: print(dir(dev.adb.pull)) 可以查看对应的adb.pull命令 print(dir(dev.adb)) 可以查看所有的adb命令,然后再来结合adb原生命令进行相应命令的使用