我在Appium(iMac上的Android模拟器)上运行了大约90个测试,一切都很好,直到突然我开始观察到此错误:
Starting logs capture with command: /Users/username/Library/Android/sdk/platform-tools/adb -P 5037 -s emulator-5554 logcat -v threadtime
E selenium.common.exceptions.WebDriverException: Message: An unknown server-side
error occurred while processing the command. Original error: Cannot find any free port in range
8200..8299}. Please set the available port number by providing the systemPort capability or
double check the processes that are locking ports within this range and terminate these which
are not needed anymore
我做了一些事情来解决这个问题,但没有任何效果:
1。
adb kill-server
adb reconnect
我确实清理了模拟器并重新启动。
除此之外,我没有找到系统已在使用的8200-8299端口。
我也确实添加了systemPort
功能,但仍然看到相同的错误。
我不知道如何解决这个问题。
更新:
找到更多日志,并发现UIAutomator 2(或adb)未清除端口转发,这就是为什么我在iOS上没有问题,而仅在Android上发布过的原因。这是位于appium服务器末端的日志:
[debug] [35m[WD Proxy] [39m Proxying [DELETE /] to [DELETE http://127.0.0.1:8200/wd/hub/session/d1f94433-2c44-4dac-a836-461ab7f41130] with no body
[debug] [35m[UiAutomator2] [39m Deleting UiAutomator2 server session
[debug] [35m[WD Proxy] [39m Matched '/' to command name 'deleteSession'
[debug] [35m[WD Proxy] [39m Proxying [DELETE /] to [DELETE http://127.0.0.1:8201/wd/hub/session/37137b29-a9a6-4d83-b2d9-ce510f601a2d] with no body
[debug] [35m[UiAutomator2] [39m Deleting UiAutomator2 server session
其中127.0.0.1:8201
上升到127.0.0.1:8299
并删除了100个我不希望的活动会话。
此外,在netstat输出中,我确实看到TCP端口127.0.0.1:8200-127.0.0.1:8299(LISTEN)已打开
答案 0 :(得分:0)
执行:
adb -s $UDID forward --remove-all
就在启动 appium 之前 然后确保adb使用的端口是空闲的