关于Appium 的配置使用,在此不多叙述
下面我要说的是配置完之后,在使用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
https://github.com/facebookarchive/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 |
在浏览器输入
http://192.168.1.148:8100/status
出现以下结果表示成功了
{ "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 ,幸运之神降临在你的身上,成功的话,你就可以看到以下界面了
上文内容不用于商业目的,如涉及知识产权问题,请权利人联系博为峰小编(021-64471599-8017),我们将立即处理