python批量启动ios设备的WebDriverAgent

# -*- coding: utf-8 -*-
## coding =utf-8
import os,subprocess
def get_ios_devices():
    print("===============================================================")
    print("========= 识别扫描连接IOS设备,开启tidevice终端=================")
    print("===============================================================")
    s = os.popen("tidevice list")
    s = s.buffer.readlines()
    ios_list = []
    for ios in s:
        if len(ios.split()) > 1:
            ios = ios.decode('utf-8')
            ios_list.append(ios.split()[0])
            print("苹果设备{}被扫描识别".format(ios.split()[0]))
    print('本次共扫描出%s个苹果设备' % len(ios_list))
    port = 0
    for devices in ios_list:
        port+=1
        print(devices)
        os.popen( "tidevice --udid "+ str(devices) +" xctest -B com.facebook.WebDriverAgentRunnerxzz.xctrunner -e USB_PORT:830"+ str(port)+'')
        # os.system( "tidevice --udid "+ str(devices) +" xctest -B com.facebook.WebDriverAgentRunnerxzz.xctrunner -e USB_PORT:830"+ str(port)+'')
        print(f"开启成功:{devices}:830{port}")
    return True

get_ios_devices()

com.facebook.WebDriverAgentRunnerxzz.xctrunner
这个需要替换成你自己的Xcode打包的BuildID

代码更新:
修复了os.popen()读取乱码问题‘gbk‘ codec can‘t decode byte 0x80

之前代码中没有s.buffer.readlines()及ios.decode(‘utf-8’),会报gbk错误。

使用buffer.readlines()读取出来的数据是字节,不是字符串,所以还需要将字节转化成字符,即代码中的ios.decode(‘utf-8’)。

也可以使用buffer.read().decode('utf-8),但读取出来的整体为str类型,需要自己转化成列表。建议用我的方法,readlines字节转字符再存列表。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值