介绍
这篇文章主要介绍python3自动识别usb连接状态的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!
在做自动化测试时,遇到两种情况需要判断usb是否已连接上(注,本文仅针对用亚行命令来控制手机)
一种是在开测时(前提是同时要测试多台),希望等待所有设备usb全部识别后同时进行测试。对于这一种,当然是可以另开一个窗口不断的输入亚行设备来检测,但不够AI。
一种是在测试过程中有时usb会自动断开,这时如果不判断usb是否有重新连接的话,则测试还会往下执行,测试指定是失败的。
<强>第一种情况:强> <强>其思路还是要利用亚行设备来不断的获取当前已连接的设备id。强>
1。先获取一个devlist,并计算当前已连接的设备数。
2。利用而循环,当重新获取一个devlist时,其设备数大于之前的设备数,则遍历新的devlist,当新设备不在旧devlist里时,就打印出的deviceid,即实现了对usb的实时识别并打印了。
具体实现如下:
import 操作系统 得到time import 睡眠 , #,获取设备id列的表 def getdevlist (): 时间=devlist 才能;[] connectfile 才能=,os.popen (& # 39; adb 设备# 39;) 时间=list 才能;connectfile.readlines () #,才能打印(列表) for 才能小姐:拷贝范围(len(列表): ,,,if 列表[我];(& # 39;\ tdevice& # 39;), !=, 1: ,,,,,temp =,[我].split列表(& # 39;\ t # 39;) ,,,,,devlist.append(临时[0]) return devlist才能 , , 时间=connectdevice 输入(& # 39;请输入每次要同时连接的设备数:& # 39;) number =, int (connectdevice.strip ()) , while 真正的: 时间=lists 才能;getdevlist () devnum 才能=,len(列表) id 才能=1 时间=tempdevlist 才能;getdevlist () if 才能devnum & lt;,号码: ,,,print (f # 39; \ n设备未全部识别,应识别{}数台设备! \ n当前已识别{devnum}台设备,请连接设备并等待识别:\ n \ n # 39;) ,,,for 小姐:拷贝范围(devnum): ,,,,,印刷(f # 39;设备:{id},{列表[我]}& # 39;) ,,,,,id =, id + 1 #,才能等待识别所有设备 while 才能devnum & lt;,号码: ,,,lists =, getdevlist () ,,,curnum =, len(列表) ,,,if curnum 祝辞,devnum: ,,,,,for 小姐:拷贝范围(len(列表): ,,,,,,,if 列出了[我],not 拷贝tempdevlist: ,,,,,,,,,印刷(f # 39;设备:{id},{列表[我]}& # 39;) ,,,,,,,,,id =, id + 1 ,,,,,,,,,tempdevlist =, getdevlist () ,,,,,devnum =curnum ,,,, 打印才能(f # 39; \ n所有设备已全部识别!当前有连接{len (getdevlist())}台设备。\ n \ n # 39;)
<强>第二种情况:强>第二种情况的前提的已知当前已连接设备的的deviceid,这个不难理解也不难获取,其思路跟第一种情况也差不太多,不过我将其封装成了一个函数。应用场景其实在实际应用过程中,总有那个一两个地方,总会概率的usb断开然后又自动连接的上,但这样就会执行失败,故对这样的概率会失败的场景先要做到了然于胸,才能在实适当的地方当判断来进行重连,做到代码简洁。
import 操作系统 得到time import 睡眠 , def reconnectAction(的deviceid): 时间=devlist 才能;getdevlist () 打印才能(f # 39;设备{的deviceid}正在尝试重连# 39;公司) id 才能=1 while 才能;deviceid  not 拷贝devlist: ,,,print (f # 39;第{id}次,& # 39;,,最终获得=,& # 39;,& # 39;) ,,,devtuple =, getdevlist () ,,,id =, id + 1 打印才能(f # 39; \ n设备{的deviceid}重新建立连接成功# 39;公司) 睡眠才能(1) , , #,例子: if __name__ ==, & # 39; __main__ # 39;: 时间=deviceid 才能;& # 39;12 lk34fkjaaf& # 39; if 才能;clickScreen (openfilemanager,,的deviceid), !=, 0: ,,,print (f # 39; {openfilemanager[1]}:执行失败”) ,,,reconnectAction(的deviceid) ,,,clickScreen (openfilemanager,,的deviceid)
好的,任务完成。
以上是“python3自动识别usb连接状态的示例分析”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注行业资讯频道!