背景介绍:
一直在负责公司Android自动化的编写工作,采用的是uiautomator2,需要获取设备id来连接设备,就是 adb devices
问题描述:
之前一直用 subprocess.check_output([\'adb\',\'devices\']) 来获取返回值,再用正则匹配id出来,但突然有一天 ubprocess.check_output([\'adb\',\'devices\']) 的返回值变成了空。
而在cmd运行 adb devices 却是正常的,而且 subprocess.check_output([\'adb\',\'help\'])等命令执行又是正常的,只有执行获取设备信息方面的命令拿不到返回值
问题分析:
这让我很是头大,第一次遇到这个问题,我先后尝试过重装python、adb、AndroidSDK,但都没有用,请教过很多人也都说没遇到过,后来又去testhom 和 Stack Overflow去发帖求助,也没找到答案
我试着去查看python 的subprocess.py 的源码,大概情况是这样子:
(testhome的发帖记录:https://testerhome.com/topics/27741)
subprocess.check_output() 里面调用的是 一个run() 方法
def check_output(*popenargs, timeout=None, **kwargs):
#省略~~~~~~
return run(*popenargs, stdout=PIPE, timeout=timeout, check=True,
**kwargs).stdout
来源:https://www.cnblogs.com/honlicc/p/14468260.html
图文来源于网络,如有侵权请联系删除。