这是一篇废话连篇的佛系记录,本文主要为 appium+wda 测试 app 过程中遇到的问题

1.appium 报错说明:

urllib2.URLError: <urlopen error [Errno 61] Connection refused>

该问题为什么会发生至今仍不知道,一方面说是当前 appium 服务端没有被启动,但是在 appium 服务端启动之后仍曾经遇到过这个问题,无组织无纪律 2% 的概率复现。

当前解决方式:通过增加重试次数重启 appium

2.socket hang up

Could not proxy command to remote server. Original error: Error: socket hang up

appium 服务端挂起,该问题由于 appium 服务端什么原因导致尚未查明,每隔一段时间总会 hang up 一次。
假装解决方式:选择在 python 脚本中对其异常进行捕获
但是这个问题总是要查的……

3.找不到证书

Error: App with bundle identifier 'xxxxxx'

遇到这个问题一种是真的证书写错了,另一种,在程序执行了好久后报这个错误那就非常奇怪了……奇怪到至今也没有查到这个问题,但可以确定的是,随着 mac 连接设备不再频繁掉设备后,这个问题也逐渐减少了。

4.找不到设备

Message: An unknown server-side error occurred while processing the command. Original error: Unknown device or simulator UDID: 'balabalabalalbas'

大意就是找不到设备,尤其是在程序执行一段时间后失败了,失败原因找不到设备,就好像之前执行的一个小时都在闹着玩一样。
此时 ituns 会弹出各种弹框:eg'当前找不到该设备' ‘无法像该设备传输信息’
所以简单粗暴的认为是设备掉线了,后来更换了 HUB 之后,该问题果然减少了!更换 HUB之后连带着找不到证书的问题也果然减少了!

httplib.BadStatusLine

raise BadStatusLine(line) httplib.BadStatusLine: ''

网上查说是你的 python 请求中断啊,但是为什么会中断!网络好好的,什么都好好的,后来终于确定了现场,那就是报出该问题时 99% 是 app 证书没有被信任,暂定就破案吧。

5.Too many instances

Too many instances of this services are already running

如果你的 appium 日志经常阵亡在 wda 启动时,满屏都是 wda 报错的日志时,不妨从 xcodebuild 中启动一下 wda,经常会出现这个错误!除了重启手机别无它法。

6.还有一个我没有记录下来

大概就是 wda session 已经再连着了,再去 createSession 就是要报错的,等我再次复现那个情况就把英文贴过来。
这个先记着,想到解决方式再过来写。

7.wda 没有启动

WebDriverException: Message: An unknown server-side error occurred while processing the command. Original error: An error occurred

element 找不到,当前发送的命令 webdriver 中没有,都可能导致这个问题

8.xcodebuild65

这个问题范围太广了,wda 没有启动成功时,基本是成片的'xcodebuild 65'
且如果你上次执行失败导致 xcodebuild65 and wda remove,之后的执行基本也是失败的。此时主要是通过 xcodebuild 重启 wda 来尽量避免成片出现这种错误。
当前可以确定的是:
手机弹出未安装 sim 卡,手机弹出 alertView 弹窗,手机未被信任都会阻止 wda 的启动。
重启手机,通过 xcodebuild 重启 wda 可以有效减少此类问题发生,但是可能不能避免。

总结

重启手机、重启 wda、避免手机电量不足而导致重新信任电脑、增加 appium 启动重试次数、更换硬件设备、对于异常进行捕获而非抛出,大概就是以上要表达的全部意思。

首发简书:我们仍未知道那天 wda 为什么没有被启动
wx:jjdcxm


↙↙↙阅读原文可查看相关链接,并与作者交流