关于Appium 的配置使用,在此不多叙述,可以参考以下链接
https://www.jianshu.com/p/3c04e029c3ea
https://www.jianshu.com/p/cbbf0134ddfa
https://github.com/appium/appium/blob/master/docs/en/writing-running-appium/caps.md
https://www.jianshu.com/p/ae8846736dba
下面我要说的是配置完之后,在使用Appium 启动时,出现了模拟器上的app反复重启的问题,定位了一下问题有如下错误
[WD Proxy] Got an unexpected response: {"value":"+[XCAXClient_iOS sharedClient]: unrecognized selector sent to class 0x100f58130\n\n(\n\t0 CoreFoundation 0x0000000212788edc + 252\n\t1 libobjc.A.dylib 0x0000000211959a40 objc_exception_throw + 56\n\t2 CoreFoundation ...
查了好多资料,都提示下载最新的WebDriverAgent
下载完之后,重新执行
sh ./Scripts/bootstrap.sh -d
配置证书,重新build之后 ,替换appium 路径下面的WebDriverAgent,以上操作都尝试之后依然报错如旧....
反思,再三反思
/Applications/Appium.app/Contents/Resources/app/node_modules/appium/node_modules/appium-xcuitest-driver/WebDriverAgent
原来Appium其实自带WebDriverAgent的,应该这样子说,不知道从Appium 的某一个版本更新之后,就不再支持facebook 出的这个WebDriverAgent了,因此你替换100次也无济于事,索性直接使用Appium 的WebDriverAgent
cd /Applications/Appium.app/Contents/Resources/app/node_modules/appium/node_modules/appium-xcuitest-driver/WebDriverAgent
mkdir -p Resources/WebDriverAgent.bundle
sh ./Scripts/bootstrap.sh -d
执行上面这个命令时,要骚微等一下下,去上个厕所,倒杯水,和前台妹子聊聊天等等,过了一会可能就成功了,如果没成功,就是你网络问题了,多点耐心
1.进入WebDriverAgent 打开xcode,菜单栏product --> Destination --> 选择device下的xxx的iPhone
2.product --> Scheme --> WebDriverAgentRunner
3.最后运行:product --> Test || command + U
结果:没问题的话,手机/模拟器上会出现一个无图标的 WebDriverAgent 应用,启动之后,马上又返回到桌面。这是正常的。然后xcode界面可以看到服务地址,表示运行成功:
2019-07-12 14:18:19.083193+0800 WebDriverAgentRunner-Runner[33741:1469798] ServerURLHere->http://192.168.1.148:8100<-ServerURLHere
在浏览器输入
出现以下结果表示成功了
{
"value" : {
"state" : "success",
"os" : {
"name" : "iOS",
"version" : "12.2",
"sdkVersion" : "12.2"
},
"ios" : {
"simulatorVersion" : "12.2",
"ip" : "192.168.1.148"
},
"build" : {
"time" : "Jul 12 2019 14:15:55",
"productBundleIdentifier" : "com.facebook.WebDriverAgentRunner"
}
},
"sessionId" : "E9FD8A75-0E96-4FD2-B145-08EAF8B1F667",
"status" : 0
}
打开Appium ,设置调试参数
{
"platformName": "iOS",
"platformVersion": "12.2",
"deviceName": "iPhone XR",
"automationName": "XCUITest",
"app": "可写可不写,Appium 可以根据bundledid 自动查找对应手机上的app",
"bundleId": "这个你懂的com.xxx.xxx",
"udid": "手机或者模拟器的uuid"
}
以上这个调试参数,切记大括号里面的参数,首起一定要有空格,不然会保存失败,点击start session ,幸运之神降临在你的身上,成功的话,你就可以看到以下界面了