selenium ChromeDriver不匹配问题
Crawler运行一段时间后可能会莫名其妙地停止工作,查看日志发现如下错误:
session not created: This version of ChromeDriver only supports Chrome version 76
原因是用selenium创建ChromeDriver时,ChromeDriver与ChromeBrowser的版本不匹配(这玩意儿兼容性看起来不是很好),而此问题总是发生的原因在于ChromeBrowser会自动升级,因此需要手动将ChromeDriver也升级到对应版本。
查看Chrome版本
Windows
打开浏览器,帮助->关于Chrome:
Google Chrome 已是最新版本
版本 78.0.3904.97(正式版本) (64 位)
Linux
finisky:~$ chromium-browser --version
Chromium 78.0.3904.70 Built on Ubuntu , running on Ubuntu 18.04
解决方案
手动下载ChromeDriver
可以看到Browser的版本是78而上面错误信息显示Driver的版本是76。到:
ChromeDriver - WebDriver for Chrome
下载78版本的ChromeDriver,并放到本地ChromeDriver目录即可。
nuget升级Selenium.Chrome.WebDriver
如果是.NET项目,可以升级Selenium.Chrome.WebDriver包到最新版。