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

运行Feature Spec时出现chromedriver存储服务TCP连接超时错误求助

解决思路

1. 排查网络与代理问题

  • 终端执行 curl -v https://chromedriver.storage.googleapis.com,确认能否正常连通该地址。如果失败,检查防火墙、网络策略是否限制了对该域名的访问。
  • 若使用代理,给webdrivers gem配置代理:
    终端设置环境变量:
    export HTTP_PROXY=http://你的代理地址:端口
    export HTTPS_PROXY=http://你的代理地址:端口
    
    或在Ruby代码中配置:
    Webdrivers.configure do |config|
      config.proxy_addr = '你的代理地址'
      config.proxy_port = '端口'
      config.proxy_user = '代理用户名' # 需认证时添加
      config.proxy_pass = '代理密码'
    end
    

2. 直接使用本地Chromium驱动

既然本地已安装Chromium,可跳过自动下载,指定本地驱动路径:

  • 先获取本地chromedriver路径:Linux/macOS执行 which chromedriver,Windows找到对应exe路径。
  • 在spec配置文件(如spec/support/capybara.rb)中添加:
    Capybara.register_driver :selenium_chromium do |app|
      options = Selenium::WebDriver::Chrome::Options.new
      options.binary = '/你的Chromium安装路径/chromium' # 路径非默认时添加
      Capybara::Selenium::Driver.new(
        app,
        browser: :chrome,
        options: options,
        driver_path: '/你的chromedriver路径/chromedriver'
      )
    end
    
    Capybara.default_driver = :selenium_chromium
    Capybara.javascript_driver = :selenium_chromium
    

3. 锁定驱动版本

指定与本地Chromium匹配的驱动版本,避免自动下载:

  • 在代码中设置:
    Webdrivers::Chromedriver.required_version = '114.0.5735.90' # 替换为你Chromium对应的驱动版本
    
    或在Gemfile中锁定webdrivers版本:
    gem 'webdrivers', '~> 4.9' # 替换为适配的版本号
    

4. 清理webdrivers缓存

缓存损坏可能导致重复触发下载,清理缓存目录:

  • Linux/macOS:删除 ~/.webdrivers 目录
  • Windows:删除 C:\Users\<你的用户名>\.webdrivers 目录

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 19:02:38