Ruby REPL冻结及SSL握手失败问题求助(Windows+VS Code)
解决Watir启动Chrome后REPL冻结及SSL握手错误的方法
1. 确保ChromeDriver与Chrome版本完全匹配
Watir依赖ChromeDriver驱动Chrome,版本不匹配是常见兼容性问题:
- 打开Chrome,通过「设置→关于Chrome」查看当前Chrome版本号
- 下载对应版本的ChromeDriver,替换系统中旧的驱动文件,或把ChromeDriver所在路径添加到系统环境变量
PATH中
2. 临时禁用SSL证书验证(解决握手错误)
启动浏览器时添加忽略SSL错误的参数,修改代码为:
require "nokogiri" require "watir" browser = Watir::Browser.new(:chrome, options: { args: ['--ignore-certificate-errors', '--ignore-ssl-errors'] })
3. 避免在REPL中直接启动浏览器
VS Code的REPL环境容易因浏览器进程阻塞,建议:
- 将测试代码写入脚本文件(如
test_spider.rb),在终端执行ruby test_spider.rb运行 - 若必须使用REPL,启动浏览器后立即执行跳转命令,比如
browser.goto('https://example.com'),避免空白页导致的进程阻塞
4. 更新相关Gem依赖
执行以下命令更新所有相关Gem,修复已知bug:
gem update watir nokogiri pry
5. 清理Chrome残留进程
打开任务管理器,结束所有chrome.exe和chromedriver.exe进程,再重新运行测试,避免残留进程引发冲突
内容的提问来源于stack exchange,提问作者ppak
相关产品推荐
相关产品推荐

