图一是appium报出来的错误,查了下应该是网络连接失败导致的

图二只是在只执行该方法的时候报的错,这个报错可能会在某个元素上报出来,可能在任何时候都会出现这个错误

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

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

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


经过代码排查发现,开始我用的不是clsaa方法,为了保持driver一致性使用了class方法,所以
问题出现在了我启动了两次appium_Desired,会导致你在运行的时候还会重新启动一遍


相同提示Shutting down because we waited 60 seconds for a command ,也可能是上次的自动化测试调用quit导致session残留,在60s后会自动退出,退出的时候会影响到已有的session,这是appium设计的一个问题,加参数 --session-override也可以