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包到最新版。