python 判断窗口状态_python3 自动识别usb连接状态,即对usb重连的判断方法

本文介绍了如何使用Python3通过adb命令实时监控和处理USB设备的连接状态。在自动化测试场景中,针对USB设备的连接变化,提供了一种不断检查设备数量并识别新连接设备的方法,以及在设备断开后实现自动重连的函数。
摘要由CSDN通过智能技术生成

在做自动化测试时,遇到两种情况需要判断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重连的判断方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。 ad51e517755f8fd6a7ec83ced4ecfaf3.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值