解决 iOS Appium 模拟器反复的重启

发表于:2019-7-17 13:29

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:攻城虎    来源:简书

#
Appium
分享:
  关于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),我们将立即处理
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号