xcode 编译webdriveragent

IOS 自动化环境搭建

xcode配置

  1. 下载WebDriverAgent

https://github.com/appium/WebDriverAgent

  1. 打开项目,找到WebDriverAgent.xcodeproj,双击打开

  2. 配置开发者账号,自己的AppleID也可以

打开code配置

新增账号

选择AppleID

添加自己的AppleID当开发者账号使用

找到配置文件

选择自己的开发者账号

找到要编译的报名修改

修改编译的包ID,需要区分,不然会报错

选择编译的项目

选择自己的手机

编译

成功之后,需要等会,直到手机出来webdriveragentrunner图标

如果编译需要输入登录密码,这个密码是电脑的登录密码,不是AppleID的密码,如果输入后无效,往下看

打开钥匙串,找到Apple Apple Development,选择始终信任,输入电脑登录密码,然后再打开这个,改回使用系统默认,再次输入电脑登录密码。然后再进行编译(怀疑是xcode的bug)

原理:通过iOS手机上的webdriveragent在手机上通信,使用过tidevice启动webdriveragent,通过HTTP的方式,然后使用封装好的wda框架,对APP进行点击等操作,和Android 的atx原理一致

macaca 查看元素:https://www.jianshu.com/p/2ec6f0a1f45a

  1. 需要一个iOS手机,并安装webdriveragent---(找鹏龙装,还需要找iOS开发把手机uuid加入到到公司的开发者账号里面)

  2. 安装阿里云第三方Python包,通过这个包,可以不需要Mac电脑,只需要有Python环境即可:https://github.com/alibaba/taobao-iphone-device

Python3.7+

pip3 install -U tidevice

tidevice version 安装后查看版本号

启动webdriveragent

tidevice wdaproxy -B com.julive.WebDriverAgentRunner.xctrunner --port 8200

参数说明:第一个参数是我们用的包,类似pip

第二个参数包涵了两个命令:Run XCTest和Relay,run xctest 相当启动webdriver,relay做端口转发,从手机上的端口转发到电脑上的端口

第三个参数-B 系统参数,类似于有这个参数知道后面还有其他参数

第四个参数 com.julive.WebDriverAgentRunner.xctrunner这是通过xcode打的一个iOS应用,到时候会通过这个应用通信, --port 8200 端口号,默认从手机的8200端口转发到电脑上的8200端口,需要用自己手机上的包名,不是同一个人打包的,报名也不一样

如下表示启动成功。

通过浏览器访问:http://localhost:8200/ 能访问即可

  1. 启动实例

启动实例我们使用facebook-wda,https://github.com/openatx/facebook-wda

wda 是atx的衍生产品,和Android的atx同源,非Facebook官方项目,这里可以不用appium了

import time

import wda

c = wda.Client("http://localhost:8200/") # 连接

print(c.status) # 打印状态

with c.session('com.netease.cloudmusic') as s: # 打开APP

time.sleep(10)

print(s.orientation)

s(text='我的').tap() # 点击

time.sleep(3)

s(text='播客').get().value # 获取value

print(s(text="播客").exists) # 判断元素是否存在

time.sleep(3)

e = s(text='云村').get(timeout=10.0) # 找元素,等10秒

time.sleep(3)

e.tap() # 找到后点击

time.sleep(5)

4.常用命令

tidevice list 列出连接设备

# 安装应用 $ tidevice install example.ipa

# 指定设备安装 $ tidevice --udid $UDID install https://example.org/example.ipa

# 卸载应用 $ tidevice uninstall com.example.demo

# 启动应用 $ tidevice launch com.example.demo

# 停止应用 $ tidevice kill com.example.demo

# 查看已安装应用 $ tidevice applist

 

 

 

 

 

posted @ 2021-03-31 16:35  绝世老中医  阅读(1011)  评论(0编辑  收藏  举报