ChromeDriver 121搭配Selenium存在严重内存占用问题求助
ChromeDriver 121 搭配 Selenium 出现严重内存泄漏,导致Web爬虫卡顿
背景
- 我有一个基于PowerShell + Selenium开发的全天Web爬虫,已稳定运行6个月,页面刷新频率限制为不低于2.5秒。
- 2024年1月31日,Windows 64位Chrome浏览器升级至121版本,同步升级对应版本的ChromeDriver后,问题出现。
问题现象
- 爬虫运行15-20分钟后,页面刷新耗时逐渐增加,无法维持2.5秒的间隔,最终出现浏览器卡顿。
- 切换为Selenium搭配Firefox或Edge浏览器,爬虫运行完全正常,无卡顿或内存异常问题。
排查测试细节
- 简化脚本复现测试
- 编写极简PowerShell Selenium脚本,仅反复执行页面刷新操作;
- Chrome环境下运行缓慢,Chrome任务管理器显示内存占用持续攀升;
- Firefox/Edge环境下运行流畅,内存占用稳定。
- 非Selenium场景验证
- 不通过Selenium驱动,仅使用Chrome自带扩展每5秒刷新页面,内存无增长,运行正常。
- 扩展替代脚本刷新的对比测试
- 修改脚本,仅完成网站连接操作,为ChromeDriver启动的浏览器安装自动刷新扩展;
- 与EdgeDriver启动的实例并行运行1小时后,Chrome进程内存占用约1.4GB,Edge进程仅约68MB。
环境一致性验证
- 问题在3台不同PC(2台Windows 10、1台Windows 11)上均能复现;
- 测试了Selenium 4.16.2和4.17.0两个版本,均存在该问题。
疑问
- 此问题的根源是Selenium、ChromeDriver还是Chrome浏览器?是否属于本地环境问题?
- 目前未在Selenium官方社区找到针对Chrome 121的相关投诉,但看到不少Chrome 121整体运行变慢的反馈,该问题应该提交到Chrome相关平台还是Selenium问题站点?
测试脚本
Add-Type -Path "C:\Selenium\WebDriver.dll" $chromeOptions = New-Object OpenQA.Selenium.Chrome.ChromeOptions $driver = New-Object OpenQA.Selenium.Chrome.ChromeDriver($chromeOptions) $driver.Navigate().GoToUrl("https://example.com") try { while ($true) { $driver.Navigate().Refresh() Start-Sleep -Seconds 2.5 } } finally { $driver.Quit() }
内容的提问来源于stack exchange,提问作者AceOfSpades
相关产品推荐
相关产品推荐

