解决Chromedriver报错unable to find open port

报错信息如下:

复制代码
[0.995][SEVERE]: bind() returned an error: ?????????????(Э??/???????/???)??????
????Ρ? (0x2740)
info: JSONWP Proxy: Got response with status 200: {"sessionId":"9aec62a73f2f11cc
e25a3d465414b33f","status":13,"value":{"message":"unknown error: cannot reserve
port for Chrome\nfrom unknown error: unable to find open port\n  (Driver info: c
hromedr...
error: Chromedriver: Chromedriver exited unexpectedly with code null, signal SIG
TERM
info: Chromedriver: Changed state to 'stopped'
warn: Chromedriver for context WEBVIEW_com.tencent.mm:tools stopped unexpectedly

warn: Chromedriver quit unexpectedly, but it wasn't the active context, ignoring

error: Chromedriver: Error: An unknown server-side error occurred while processi
ng the command. (Original error: unknown error: cannot reserve port for Chrome
from unknown error: unable to find open port
  (Driver info: chromedriver=2.18.343845 (73dd713ba7fbfb73cbb514e62641d8c96a9468
2a),platform=Windows NT 6.1 x86_64))
    at JWProxy.command$ (lib/proxy.js:133:15)
    at tryCatch (C:\Program Files (x86)\Appium\node_modules\appium\node_modules\
appium-chromedriver\node_modules\appium-jsonwp-proxy\node_modules\babel-runtime\
regenerator\runtime.js:67:40)
    at GeneratorFunctionPrototype.invoke [as _invoke] (C:\Program Files (x86)\Ap
pium\node_modules\appium\node_modules\appium-chromedriver\node_modules\appium-js
onwp-proxy\node_modules\babel-runtime\regenerator\runtime.js:315:22)
    at GeneratorFunctionPrototype.prototype.(anonymous function) [as next] (C:\P
rogram Files (x86)\Appium\node_modules\appium\node_modules\appium-chromedriver\n
ode_modules\appium-jsonwp-proxy\node_modules\babel-runtime\regenerator\runtime.j
s:100:21)
    at GeneratorFunctionPrototype.invoke (C:\Program Files (x86)\Appium\node_mod
ules\appium\node_modules\appium-chromedriver\node_modules\appium-jsonwp-proxy\no
de_modules\babel-runtime\regenerator\runtime.js:136:37)
    at bound (domain.js:250:14)
    at GeneratorFunctionPrototype.runBound (domain.js:263:12)
    at run (C:\Program Files (x86)\Appium\node_modules\appium\node_modules\appiu
m-chromedriver\node_modules\appium-jsonwp-proxy\node_modules\babel-runtime\node_
modules\core-js\library\modules\es6.promise.js:89:39)
    at C:\Program Files (x86)\Appium\node_modules\appium\node_modules\appium-chr
omedriver\node_modules\appium-jsonwp-proxy\node_modules\babel-runtime\node_modul
es\core-js\library\modules\es6.promise.js:100:28
    at flush (C:\Program Files (x86)\Appium\node_modules\appium\node_modules\app
ium-chromedriver\node_modules\appium-jsonwp-proxy\node_modules\babel-runtime\nod
e_modules\core-js\library\modules\$.microtask.js:17:13)
    at doNTCallback0 (node.js:407:9)
    at process._tickDomainCallback (node.js:377:13)
 { [Error: An unknown server-side error occurred while processing the command. (
Original error: unknown error: cannot reserve port for Chrome
from unknown error: unable to find open port
  (Driver info: chromedriver=2.18.343845 (73dd713ba7fbfb73cbb514e62641d8c96a9468
2a),platform=Windows NT 6.1 x86_64))]
  status: 13,
  value: { message: 'unknown error: cannot reserve port for Chrome\nfrom unknown
 error: unable to find open port\n  (Driver info: chromedriver=2.18.343845 (73dd
713ba7fbfb73cbb514e62641d8c96a94682a),platform=Windows NT 6.1 x86_64)' },
  httpCode: 200 }
复制代码

问题原因:每次New AppiumDriver和切换Webview的时候,adb.exe会占用大量端口,而chromedriver每次退出后会寻找新的端口,此问题是chromdriver找不到可用的端口就会报错。

解决办法:测试完成后通过结束adb进程来释放所有adb.exe占用的端口。

Runtime.getRuntime().exec("taskkill /f /im adb.exe");
Thread.sleep(3000);
Runtime.getRuntime().exec("adb start-server"); //若要长时间保持手机与电脑连接,需要继续使用adb start-server来保持连接。

 

posted @   ycyzharry  阅读(1942)  评论(0编辑  收藏  举报
编辑推荐:
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构

喜欢请打赏

扫描二维码打赏

支付宝打赏

点击右上角即可分享
微信分享提示