You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Azure Pipeline虚拟机Webdriverio连接Chromedriver失败:ECONNREFUSED 127.0.0.1:9515

排查Webdriverio无法连接Chrome实例的进阶方案

1. 对比新旧代码拉取方式的环境差异

  • 检查工作目录权限:用Get-Acl .对比新拉取代码目录与旧Git工件目录的权限设置,确保测试执行账号对目录有完全控制权限——新拉取的代码可能继承了本地网络共享的 restrictive 权限,导致Chrome/Chromedriver无法读写临时文件。
  • 验证环境变量一致性:导出新旧环境变量列表(Get-ChildItem Env:),检查是否缺失旧工件中预设的关键变量(如CHROME_BIN、WEBDRIVERIO_CHROMEDRIVER_PATH),手动补全后重新测试。

2. 深挖Chrome启动失败的细节

  • 启用Chrome详细日志:在Webdriverio配置的goog:chromeOptions.args中添加--enable-logging --v=1 --log-path=C:\chrome_debug.log,查看日志中是否存在依赖缺失、资源占用、权限被拒等具体启动错误。
  • 手动启动Chrome测试:在VMAgent上用测试账号运行chrome.exe --remote-debugging-port=9515,若手动启动失败则直接排查Chrome本身(如损坏的安装包、缺失DLL);若手动启动成功,尝试让Webdriverio连接该实例,验证是否为代码启动逻辑问题。

3. 检查测试执行上下文的会话差异

  • 确认用户会话:Azure Pipeline的VMAgent服务可能以系统账号运行,新拉取代码可能依赖用户级Chrome配置。可在测试脚本前添加Start-Process chrome.exe -NoNewWindow强制在当前会话启动Chrome,或添加--no-sandbox、--headless=new参数避免会话隔离限制。
  • 清理临时文件目录:检查%TEMP%目录的可用空间,删除以scoped_dir开头的Chrome临时文件夹——临时目录空间不足、权限受限或被工具锁定,会直接导致Chrome启动失败。

4. 排查端口与回环接口的深层问题

  • 验证端口监听状态:用netstat -ano | findstr :9515确认9515端口是否真的被Chromedriver进程监听。若未监听,说明Chromedriver启动后立即崩溃;若已监听,用Test-NetConnection 127.0.0.1 -Port 9515测试本地连接是否真的被拒绝。
  • 切换回环访问方式:尝试将Webdriverio配置中的hostname改为虚拟机内部IP(如192.168.x.x),或用localhost替代127.0.0.1,排查虚拟机回环接口配置异常导致的连接问题。

5. 重置Chrome/Chromedriver环境

  • 重新安装Chrome到默认路径:卸载现有Chrome,重新安装到C:\Program Files\Google\Chrome\Application,确保Chromedriver版本与Chrome完全匹配(对比chrome://version和chromedriver --version输出)。
  • 清理Webdriverio依赖缓存:删除node_modules和package-lock.json,重新执行npm install,避免旧依赖缓存或版本冲突引发的启动问题。

内容的提问来源于stack exchange,提问作者Blueguy2240

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.15 12:15:14