appium运行过程中报错,总提示无法将命令代理到远程服务器,Error: socket hang up

image
图一是appium报出来的错误,查了下应该是网络连接失败导致的,但具体问题也没有查到
image
图二只是在只执行该方法的时候报的错,这个报错可能会在某个元素上报出来,可能在任何时候都会出现这个错误


图三就是执行器报的错误了

图四是我执行的py文件

图五呢是我为了控制执行器始终执行一次,选择了class方法,因为在执行的时候,每一个test文件都会重新启动一遍APP,

1、没贴代码
2、你这样贴日志没办法看的,建议把日志下载出,发出来
3、没说清问题的上下文

大神,你看还需要什么材料~ :pleading_face:

image
开始一直再找这个错误原因,试过降低appium版本和Androidsdk的版本,但是都没有用,后来
仔细看了下Appium上的日志,发现有一行报错 Shutting down because we waited 60 seconds for a command 这是提示因为我们等了60秒才接到命令而关机,
但我不确定是不是因为超时了60秒而中断连接,因为在执行到某个元素上就会报错,我猜想不会是元素的问题,于是我用sleep进行调试,发现超60秒会在不同的元素上报这个错误,排除了元素错误的可能性,唯一可能性可能原因是启动了两次APP,有一个已经超时所以强制中段了连接导致程序停止运行,然后尝试使用“newCommandTimeout”自定义了超时时间,然后就正常运行了,临时解决办法,至于为什么APP启动了两次还需要在研究下代码~
image

bfcdde10781ee7b539ac9996dc330a3
0abd24c27d85ec515554fc4da453fb6
自己入的坑还需要自己来解,最初原因是启动了两遍driver导致,因为开始我用的不是clsaa方法,为了保持driver一致性使用了class方法

1 个赞

也遇到了这个问题,原因相同,已解决,谢谢分享。

上次的自动化测试没有调用quit导致session残留,在60s后会自动退出,退出的时候会影响到已有的session。这是appium设计的一个问题。

加参数 --session-override也可以

能每次调用quit肯定是最好的
还有个终极的办法,遇见错误就把设备的io.appium.uiautomator2.server程序强制关闭