坑爷的appium升级

为了适配iOS11的iPhoneX,Xcode版本旧,不支持iOS11,升级,macOS版本旧,不支持新Xcode,升级,一连串的坑来了:

1, 随机崩溃,org.openqa.selenium.WebDriverException: Invalid parameter not satisfying: point.x != INFINITY && point.y != INFINITY,google,WebDriverAgent对新xcode支持不好,需要更新到最新版本解决此问题,干脆顺便把appium升级到最新1.8.1(命令行,非客户端)。——这是一连串坑的开始,建议最小化升级,即只升级WebDriverAgent。(appium更新太不稳定了)
2, 引入新问题,implicit wait无效,还没等元素加载出来就点失败,appium日志appium Bad parameters: BadParametersError: Parameters were incorrect. We wanted "W3C protocol expects any of script, pageLoad or implicit to be set",google,据说最新的java-client解决了此bug,
3, 升级java-client到最新,6.0.1,报错,RemoteWebElement can’t cast to MobileElement —— selenium版本低,升级解决。
4,implicitlyWait仍然无效,在每条命令执行之间加700毫秒,暂时可以顺利执行多数命令,不能再多加时间,否则每多500毫秒1千条命令就多近10分钟,少数加载时间长的前面加sleep。
5,升级java-client到6.0.1后,很多API找不到,二次封装的方法大面积失效,暂时没有时间投入修复,遂降级。
6,由于implicitlyWait无效,再次尝试降级appium到1.7.1,发现此时元素点击不中,用Inspector查看,该元素XCUIElementTypeTextField和XCUIElementButton叠加在一块,accessibilityID定位到的只是XCUIElementTypeTextField, 不是button,只有定位到button才能响应tap事件。重新升级appium到1.8.1,问题消失。
7,中间还尝试更新appium到1.8.2-beta,然并卵。查看appium可用版本,npm info appium,安装指定版本cnpm install -g appium@1.8.2-beta
8,遇到错误

xcodebuild[2229:173390] Error Domain=IDETestOperationsObserverErrorDomain Code=3 “Unable to connect to test manager on 067ac958f8697399exxxxxx1befcb0ddbfe408dc

手机重启好了。。手机重启好了。。。