环境:
IOS 真机运行,appium 版本:1.3.7
打印 contexts 报错:Could not connect to WebKitRemoteDebugger server,
注:IOS 模拟器运行时 OK

代码:
打印 contexts

a = driver.contexts
print a

异常:
appium server 报错异常:

info: --> GET /wd/hub/session/d511fd5d-7451-4c51-af3c-64ab8f23be3f/contexts {}

info: [debug] [REMOTE] Getting WebKitRemoteDebugger pageArray

error: [REMOTE] Could not connect to WebKitRemoteDebugger server

info: [debug] Responding to client with error: {"status":13,"value":{"message":"An unknown server-side error occurred while processing the command. (Original error: connect ECONNREFUSED)","code":"ECONNREFUSED","errno":"ECONNREFUSED","syscall":"connect","origValue":"connect ECONNREFUSED"},"sessionId":"d511fd5d-7451-4c51-af3c-64ab8f23be3f"}
info: <-- GET /wd/hub/session/d511fd5d-7451-4c51-af3c-64ab8f23be3f/contexts 500 4.727 ms - 293

解决方法:
参考文章:https://testerhome.com/topics/3144
描述如下:
“appium 使用一个远程调试器建立连接来实现和 web 视图的交互。当在模拟器上执行下面例子的时候,我们可以直接建立连接,因为模拟器和 appium 服务器在同一台机器上。
当在真机上运行用例时,appium 无法直接访问 web 视图,所以我们需要通过 USB 线缆来建立连接。我们使用 ios-webkit-debugger-proxy 建立连接。”

识别到设备后,安装 ios-webkit-debugger-proxy,
通过: ios-webkit-debugger-proxy -c udid -d 来开启服务,再次运行解决问题!!


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