尝试在Linux机器上使用Chromium(通过ChromeDriverManager)运行Selenium。
错误信息:
selenium.common.exceptions.SessionNotCreatedException: Message: session not created: This version of ChromeDriver only supports Chrome version 114
Chromium info:
$ chrome --version
Chromium 116.0.5826.0
$ which chrome
/usr/local/bin/chrome
Python代码:
from selenium import webdriver
from selenium.webdriver.chrome.service import Service as ChromiumService
from webdriver_manager.chrome import ChromeDriverManager
from webdriver_manager.core.utils import ChromeType
chromium_driver = ChromeDriverManager(chrome_type=ChromeType.CHROMIUM).install()
driver = webdriver.Chrome(service=ChromiumService(chromium_driver))
driver.get("http://www.justinbieber.sucks")
driver.quit()
错误消息很明显,这是一个版本/兼容性问题(Chromium和ChromeDriver之间),但似乎还没有Chromium 16.0的ChromeDriver。此外,我不能为上帝的爱找到一个下载链接 chrome 14。ChromeDriverManager也帮不上什么忙。
1条答案
按热度按时间fbcarpbf1#
此错误消息...
...意味着chromium和ChromeDriver版本之间存在版本不兼容性。
本用例
最新的ChromeDriver是v114.0.5735.90,您必须相应地降级Chromium浏览器版本。
解决方案
要在Linux上下载、安装和使用特定版本的Chrome/Chromium,您需要遵循Download Chromium页面中的相关步骤:
下载旧版本的Chrome/Chromium假设您想要一个Chrome 44版本用于调试目的。Google不提供旧版本,因为它们没有最新的安全修复程序。
但是,您可以获得Chromium 44.x的构建版本,该版本应该与稳定版本基本匹配。
以下是你如何找到它:
在https://googlechromereleases.blogspot.com/search/label/Stable更新中查找上次提到“44.”的时间。在Position Lookup中循环该版本历史("44.0.2403.157")在本例中,它返回基本位置"330231"。这是2015年5月44版本分支的提交。* 打开持续构建存档在您的平台(Linux/Mac/Win)上点击,将"330231"粘贴到顶部的过滤器字段中,等待所有结果进入XHR。最后,我得到了一个完美的答案:https://commondatastorage.googleapis.com/chromium-browser-snapshots/index.html?prefix=Mac/330231/有时候,你可能需要递减提交编号,直到找到一个。下载并运行!
通常这是可以的,但是如果你需要真正的构建“44.0.2403.x”,那么你需要从2403分支构建Chromium。一些PortableApps/PortableChromium网站提供这样的二进制文件,出于安全考虑,Chrome团队不建议运行它们。