python3 自动识别usb连接状态,即对usb重连的判断方法
- 更新时间:2023-01-03 09:25:23
- 编辑:聂才捷
参考资料
- Python3.6零基础入门与实战 PDF 电子书 / 518.9 MB / 王启明 推荐度:
- Python3零起点教程 / 11.4 MB / 廖雪峰 推荐度:
- 笨办法学python3 PDF 电子书 / 6 MB / 泽德 推荐度:
正文内容
在做自动化测试时,遇到两种情况需要判断usb是否已连接上(注,本文仅针对用adb命令来control手机)
一种是在开测时(前提是同时要测试多台), 希望等待所有设备usb全部识别后同时进行测试。对于这一种,当然是可以另开一个窗口不断的输入adb devices来检测,但不够AI。
一种是在测试过程中有时usb会自动断开,这时如果不判断usb是否有重新连接的话,则测试还会往下执行,测试指定是失败的。
第一种情况:其思路还是要利用adb devices来不断的获取当前已连接的设备id。
1.先获取一个devlist, 并计算当前已连接的设备数.
2.利用while循环,当重新获取一个devlist时,其设备数大于之前的设备数,则遍历new devlist,当new device不在old devlist里时,就print出deviceid, 即实现了对usb的实时识别并打印了.
具体实现如下:
import os from time import sleep # 获取设备id列表 def getdevlist(): devlist = [] connectfile = os.popen('adb devices') list = connectfile.readlines() # print(list) for i in range(len(list)): if list[i].find('\tdevice') != -1: temp = list[i].split('\t') devlist.append(temp[0]) return devlist connectdevice = input('请输入每次要同时连接的设备数:') number = int(connectdevice.strip()) while True: lists = getdevlist() devnum = len(lists) id = 1 tempdevlist = getdevlist() if devnum < number: print(f'\n设备未全部识别,应识别{number}台设备!\n当前已识别{devnum}台设备,请连接设备并等待识别:\n\n') for i in range(devnum): print(f'设备{id}: {lists[i]}') id = id + 1 # 等待识别所有设备 while devnum < number: lists = getdevlist() curnum = len(lists) if curnum > devnum: for i in range(len(lists)): if lists[i] not in tempdevlist: print(f'设备{id}: {lists[i]}') id = id + 1 tempdevlist = getdevlist() devnum = curnum print(f'\n所有设备已全部识别!当前有连接{len(getdevlist())}台设备.\n\n')
第二种情况:第二种情况的前提的已知当前已连接设备的deviceid, 这个不难理解也不难获取,其思路跟第一种情况也差不太多,不过我将其封装成了一个函数. 应用场景其实在实际应用过程中,总有那个一两个地方,总会概率的usb断开然后又自动连接上,但这样就会执行失败,故对这样的概率会fail的场景先要做到了然于胸,才能在实适当的地方当判断来进行重连,做到代码简洁。
import os from time import sleep def reconnectAction(deviceid): devlist = getdevlist() print(f'设备{deviceid}正在尝试重连.') id = 1 while deviceid not in devlist: print(f'第{id}次 ', end = ' ') devtuple = getdevlist() id = id + 1 print(f'\n设备{deviceid}重新建立连接成功.') sleep(1) # example: if __name__ == '__main__': deviceid = '12lk34fkjaaf' if clickScreen(openfilemanager, deviceid) != 0: print(f'{openfilemanager[1]}:执行失败‘) reconnectAction(deviceid) clickScreen(openfilemanager, deviceid)
OK, 任务完成。
以上这篇python3 自动识别usb连接状态,即对usb重连的判断方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持码农之家。
python3相关教程
-
Python3单行定义多个变量或赋值的方法总结
今天小编就为大家分享一篇Python3单行定义多个变量或赋值方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
发布时间:2019-07-25
-
Python3.5 Pandas模块中Series用法详解
这篇文章主要介绍了Python3.5 Pandas模块之Series用法,结合实例形式分析了Python3.5中Pandas模块的Series结构原理、创建、获取、运算等相关操作技巧与注意事项,需要的朋友可以参考下
发布时间:2019-06-15
-
python3使用SMTP发送HTML格式邮件
给网友们整理关于python3的教程,这篇文章主要为大家详细介绍了python3使用SMTP发送HTML格式的邮件,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
发布时间:2022-12-12
-
Python3实现的简单验证码识别功能示例
给网友们整理关于Python3的教程,这篇文章主要介绍了Python3实现的简单验证码识别功能,涉及Python针对验证码图片识别处理相关操作技巧,需要的朋友可以参考下
发布时间:2022-10-26
-
python3读取Excel表格数据的代码分享
这篇文章主要介绍了python3 读取Excel表格中的数据的相关资料,需要的朋友可以参考下
发布时间:2020-01-18
-
python3 用ssh隧道连接mysql的操作
这篇文章主要介绍了python3 使用ssh隧道连接mysql的操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
发布时间:2021-05-07
-
python3 selenium自动化 下拉框定位的例子
给大家整理一篇关于python3的教程,今天小编就为大家分享一篇python3 selenium自动化 下拉框定位的例子,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
发布时间:2022-10-26
-
python3字符串输出常见面试题总结
给大家整理一篇关于python 字符串的教程,在本篇文章里小编给大家整理的是一篇关于python3字符串输出常见面试题总结内容,有需要的朋友们可以参考下。
发布时间:2022-09-07