脱离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()方法实现点击了,有点曲线救国的味道,哈哈