处理命令时发生未知的服务器端错误。无法将命令代理到远程服务器。原报错:Error: socket hang up

问题描述 投票:0回答:9

如果我运行 TestNG 测试类,它会显示错误------------

org.openqa.selenium.WebDriverException: An unknown server-side error occurred while processing the command. 
Original error: Could not proxy command to remote server. Original error: Error: socket hang up (WARNING: The server did not provide any stacktrace information)
Command duration or timeout: 281 milliseconds
Build info: version: '2.53.1', revision: 'a36b8b1cd5757287168e54b817830adce9b0158d', time: '2016-06-30 19:26:09'
System info: host: 'MON-PC305', ip: '10.101.0.119', os.name: 'Windows 10', os.arch: 'amd64', os.version: '10.0', java.version: '1.8.0_144'
Driver info: io.appium.java_client.android.AndroidDriver
Capabilities [{appPackage=com.app.android.game.app, statBarHeight=84, noReset=false, viewportRect={top=84, left=0, width=1440, height=2308}, deviceName=emulator-5554, platform=LINUX, deviceUDID=emulator-5554, desired={app="app path", appPackage=com.app.android.game.app, appActivity=com.app.android.game.app.activities.login.riskWarningLogin.RiskWarningLoginActivity, noReset=false, automationName=uiautomator2, skipUnlock=true, platformName=Android, deviceName=emulator-5554}, platformVersion=9, webStorageEnabled=false, automationName=uiautomator2, takesScreenshot=true, skipUnlock=true, javascriptEnabled=true, platformName=Android, deviceApiLevel=28, deviceManufacturer=Google, app=C:\Users\***\eclipse-workspace\appname\app.apk, deviceScreenSize=1440x2560, networkConnectionEnabled=true, warnings={}, databaseEnabled=false, appActivity=com.app.android.game.app.activities.login.riskWarningLogin.RiskWarningLoginActivity, pixelRatio=3.5, locationContextEnabled=false, deviceScreenDensity=560, deviceModel=Android SDK built for x86}]
Session ID: d275d496-08b0-4652-9aa9-67ae0476cdc8
android exception driver appium-android
9个回答
6
投票

停止 appium 服务器并执行以下命令

adb 卸载 io.appium.uiautomator2.server adb 卸载 io.appium.uiautomator2.server.test

启动appium服务器并执行你的脚本..它会工作


3
投票

我遇到了一个确切的错误,但解决方案是我必须重新启动我的 Android 模拟器和 Appium 服务器。之后一切开始工作。


2
投票

停止 appium 服务器并执行以下命令

adb uninstall io.appium.uiautomator2.server  adb uninstall io.appium.uiautomator2.server.test


1
投票

发生这种情况是因为您在代码中打开了 2 个驱动程序实例。

URL url = new URL(Common.getProperty("URL"));
driver = new AndroidDriver<WebElement>(url, capabilities);

以上内容。确保你只在你的西装中初始化过一次,否则它会遇到你遇到的同样的错误。


1
投票

我遇到了完全相同的问题。 以下是快速解决方案无需卸载任何东西:

如果您使用的是真实设备(Android)。拔下 USB 数据线,然后 关闭或重新启动您的 Android 设备。

如果您使用的是模拟器 (Android)。关闭它并重新启动 相应地。

连接你的真实设备/模拟器并运行你的测试一切都应该相应地工作


0
投票

不知道是不是一样,我在vivo手机上通过uiautomator2运行appium automation时遇到了类似的问题。 appium 错误日志就像

[debug] [W3C (9ae907c5)] Encountered internal error running command: UnknownError: An unknown server-side error occurred while processing the command. Original error: Could not proxy command to remote server. Original error: Error: socket hang up
[debug] [W3C (9ae907c5)]     at JWProxy.command (/usr/local/lib/node_modules/appium/node_modules/appium-base-driver/lib/jsonwp-proxy/proxy.js:261:13)
[HTTP] <-- POST /wd/hub/session/9ae907c5-5319-4f0b-92dc-fdaa47cfdcc5/element 500 139 ms - 530

我这边的原因是 io.appium.uiautomator2.server 被系统进程 com.vivo.abe 杀死,因为我从 logcat 中捕获了以下日志

02-29 09:43:32.236  1742 15589 I ActivityManager: Force stopping io.appium.uiautomator2.server appid=10271 user=0: stop by com.vivo.abe
02-29 09:43:32.236   701   701 E ANDR-IOP: IOP HAL: Received pkg_name = io.appium.uiautomator2.server pid = 0
02-29 09:43:32.237  1742 15589 I ActivityManager: Killing 28683:io.appium.uiautomator2.server/u0a271 (adj 0): stop by com.vivo.abe
02-29 09:43:32.239   701   701 E ANDR-IOP: IOP HAL: Received pkg_name = io.appium.uiautomator2.server pid = 0

com.vivo.abe(名字叫vivo智慧引擎)是vivo手机的系统应用,不能卸载也不能强制停止。解决这个问题的方法有一个,就是把io.appium.uiautomator2.server加入白名单,com.vivo.abe就不会再对app执行kill了。

方法是 Setting -> Battery -> High background power consumption ,然后将 io.appium.uiautomator2.server 添加到允许列表中。

我执行动作后,io.appium.uiautomator2.server不会再被杀死,自动化脚本可以顺利运行。

希望能给解决问题的一些参考


0
投票

以下对我有用,我在 android studio 中使用虚拟设备

  • 打开 Android Studio 点击 Configure.
  • 单击 AVD 管理器。
  • 单击虚拟设备右侧的下拉菜单。
  • 现在点击冷启动。

大功告成!设备将在几分钟内重新启动。

参考:https://stackoverflow.com/a/68688915/20916414


0
投票

我也遇到了类似的问题。当你遇到这样的问题时,你只需要在你的终端上运行以下命令:

adb uninstall io.appium.uiautomator2.server.test

你会得到一个终端成功响应。重新运行您的 Appium 服务器,它将正常工作。


0
投票

同时我找到了一个解决方法:(我在 webdriver.io 中使用 javascript,但是你可以调整到其他客户端语言,基本上是一样的)

1.- 在 Android 功能中添加完全重置

'appium:fullReset': true,

2.-在

afterEach
方法中删除会话
await driver.deleteSession();

afterEach(async function () {
    await driver.deleteSession();
},2);

3.- 初始化驱动程序时添加 2 次重试,在我的例子中是

beforeEach
方法

beforeEach(async function () {
    driver = await getAppiumClient();        
}, 2);

然后它会在第一次或第二次失败时出现 socket hang up 错误,但我将成功运行第三次和后续测试。

© www.soinside.com 2019 - 2024. All rights reserved.