Appium 求大神帮忙看看:An unknown server-side error occurred while processing the command. Original error: Could not proxy command to remote server. Original error: Error: read ECONNRESET

季文洪 · 2017年12月28日 · 最后由 gogily.liu 回复于 2019年04月08日 · 4722 次阅读

Mac OS 10.13.2
Appium 1.2.7
Android 5.1.1 (MIUI 8.6.9.15)
Python3

(整个脚本执行 50 次大概有一半遇到这种问题,当然每次出错的地方不都在这里)

sleep(10)
for i in range(1,6):
    if dr.find_elements_by_android_uiautomator('new UiSelector().text("INSTALL")'):
        print ("*** INSTALL has been found. ")
        break
    else:
        swipeUp(dr)
        sleep(5)

报错信息如下:
Traceback (most recent call last):
File "../COMMON/Appium_GooglePlay_Android.py", line 133, in SearchApp
if dr.find_elements_by_android_uiautomator('new UiSelector().text("INSTALL")'):
File "/usr/local/lib/python3.6/site-packages/appium/webdriver/webdriver.py", line 167, in find_elements_by_android_uiautomator
return self.find_elements(by=By.ANDROID_UIAUTOMATOR, value=uia_string)
File "/usr/local/lib/python3.6/site-packages/selenium/webdriver/remote/webdriver.py", line 886, in find_elements
'value': value})['value'] or []
File "/usr/local/lib/python3.6/site-packages/selenium/webdriver/remote/webdriver.py", line 311, in execute
self.error_handler.check_response(response)
File "/usr/local/lib/python3.6/site-packages/appium/webdriver/errorhandler.py", line 29, in check_response
raise wde
File "/usr/local/lib/python3.6/site-packages/appium/webdriver/errorhandler.py", line 24, in check_response
super(MobileErrorHandler, self).check_response(response)
File "/usr/local/lib/python3.6/site-packages/selenium/webdriver/remote/errorhandler.py", line 237, in check_response
raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.WebDriverException: Message: An unknown server-side error occurred while processing the command. Original error: Could not proxy command to remote server. Original error: Error: read ECONNRESET

共收到 14 条回复 时间 点赞

一般 Node.js 提供的 HttpServer 默认设置了超时时间为 2 分钟,当一个请求的处理时间超过 2 分钟,HttpServer 会自动将该请求的 socket 关闭掉,于是客户端便收到了 ECONNRESET 的错误信息了;当然这里不是因为时间的问题 是直接报超时 error ,主要的原因就是 HttpServer 进程被上次自动化一直占用,所以会导致一运行就会报 ECONNRESET 的错误,一般重启设备或删除 Appium 的所属 App 即可

这个问题,我也遇到过,我当时把 设备上关于 Appium 安装的所有软件手动卸载 再运行时就没问题了 好像是设备上的 Proxy 代理被上次自动化运行占用未被释放导致的

问题解决了么,我也遇到这个,折腾了好几天找不到解决方法

appium 换个端口执行就可以了

yajunzheng 回复

没有真正的解决,开发重构了代码再试就可以了

test_lj 回复

我也遇到这个问题了,有人解决了吗,求请教

同问~换成 appium 有的地方 getpagesource 拿不到结果,也不报错;不换吧又时不时的报错,头疼

黑白 回复

请问你问题解决了吗?我也遇到这个问题,去掉又会找不到元素,不去有时候又点击的时候请求超时

我注释了这句,Android7 以上的手机又会报找不到元素,加上点击又反应很长时间都点击不了最后报你上面的错误,请问你解决了吗

楼主最终怎么解决的,能分享一下吗?今天遇到了这个问题,想拿 toast 进行断言。。。。。。

头疼,我也遇到了,注释掉哪行,拿不到 toast,还怎么断言

黑白 回复

这个问题我也遇到了,你这边找到解决办法了没有。求分享。。。。

去掉 desired_caps['automationName']='uiautomator2'就无法拿到 toast 消息了,加上去导致 appium 并发运行报错,头疼啊,有解决办法么?

网上找一圈没有找到解决办法,下班的时候突然想到把下面这行注释掉,结果第二天来检查,没有出现过这种错误。

#desired_caps['automationName']='uiautomator2'
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册