运行Feature Spec时出现chromedriver存储服务TCP连接超时错误求助
解决思路
1. 排查网络与代理问题
- 终端执行
curl -v https://chromedriver.storage.googleapis.com,确认能否正常连通该地址。如果失败,检查防火墙、网络策略是否限制了对该域名的访问。 - 若使用代理,给webdrivers gem配置代理:
终端设置环境变量:
或在Ruby代码中配置:export HTTP_PROXY=http://你的代理地址:端口 export HTTPS_PROXY=http://你的代理地址:端口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匹配的驱动版本,避免自动下载:
- 在代码中设置:
或在Gemfile中锁定webdrivers版本:Webdrivers::Chromedriver.required_version = '114.0.5735.90' # 替换为你Chromium对应的驱动版本gem 'webdrivers', '~> 4.9' # 替换为适配的版本号
4. 清理webdrivers缓存
缓存损坏可能导致重复触发下载,清理缓存目录:
- Linux/macOS:删除
~/.webdrivers目录 - Windows:删除
C:\Users\<你的用户名>\.webdrivers目录
内容的提问来源于stack exchange,提问作者Boti
相关产品推荐
相关产品推荐

