脱离Mac搞iOS自动化,告别iOS版本限制

淘宝出来tidevice,这玩意能让我们脱离xcode,结合airtest的iOS-Tagent,能实现iOS自动化,网上教程一大堆,但是看下iOS-Tagent介绍,目前最高支持到iOS13.4X,Xcode11.4x,对于高版本的iphone手机很不友好,毕竟目前已经出到iphone 13了,能适配的手机可能也就到iphone x了吧,所以可以另辟蹊径,下面介绍方法

正常版本也就是iOS13.4X,Xcode11.4x满足的小伙伴可以按照教程操作,推荐几个链接

1.iOS-Tagent安装:https://github.com/AirtestProject/iOS-Tagent

2.tidevice地址: https://github.com/alibaba/taobao-iphone-device 这玩意pip install tidevice就好,window连上iOS手机,使用tidevice list查看链接设备的udid,如果报错,说明没有驱动,安装一个itools或者爱思助手就好

开启测试前需要启动WDA

from tidevice import Device
Device("udid").xctest("WebDriverAgent的BundleID")# Device('fda646f4d5343sfhbbsf3dgzad').xctest("com.xxxxxxx.xctrunner")

实例化poco,按照下面的方法,就可以对游戏进行操作了

def dev_connect(device):
    """
    用于poco实例化的公用方法
    :param device: 指定设备
    :return:
    """
    if '-' in device or len(device) > 30:
        device = f'http+usbmux://{device}'
        plat_form = "ios:///"
    else:
        AdbClient(device).remove_tcp()
        plat_form = "android:///"
    dev = connect_device(plat_form + device)
    poco = UnityPoco(device=dev)
    return poco

针对没有Xcode11.4x小伙伴们,可以使用VMware Workstation 16 Player搞一个虚拟mac系统,怎么搞?百度吧,网上教材一堆,mac系统是10.15

 

 

 高版本的iphone就用最新的xcode按照上面的搞一遍,但是有个问题就是poco不支持点击,移动,不过可以获取pos点,那么我们就放弃poco的点击,使用类似android的adb点击滑动,这里推荐wda,

使用方式如下pip install facebook-wda

import wda

def wda_connect():
    # print(Device(dev5).info)
    idb = wda.Client('http+usbmux://fda646f4d5343sfhbbsf3dgzad') # 使用udid实例化
  print(idb.status())
  return idb

点击

def idb_click():
    idb = wda_connect()
    idb.click(200, 352)

这样我们就可以通过poco获取控件pos点,然后通过这个idb_click()方法实现点击了,有点曲线救国的味道,哈哈

 

posted @ 2021-12-28 17:15  ShineLeem  阅读(714)  评论(0编辑  收藏  举报