未找到 Chromedriver 版本 115
对于高于 115 的 chromedriver 版本,此功能已停止工作:
driver = webdriver.Chrome()
出现错误
There is no such driver by url https://chromedriver.storage.googleapis.com/LATEST_RELEASE_115.0.5790.
根据此处的建议 selenium webdriver chrome 115 停止工作,而这个方法可以:
service = Service(ChromeDriverManager(version="114.0.5735.90").install())
但这似乎不是一个好的持续解决方案。有没有更好的办法?
唯一有效的是将 webdriver-manager 更新到 4.0.0
使用此包更新旧语法
driver = webdriver.Chrome(ChromeDriverManager().install(), options=chrome_options)
又开始工作了:)
Service 参数仅从 Selenium 4.10 开始可用
您可以使用 WebDriver-Manager
自动更新驱动程序版本。
安装webdriver-manager
:
pip install webdriver-manager
对于 Chrome:
# selenium 3
from selenium import webdriver
from webdriver_manager.chrome import ChromeDriverManager
driver = webdriver.Chrome(ChromeDriverManager().install())
# selenium 4
from selenium import webdriver
from selenium.webdriver.chrome.service import Service as ChromeService
from webdriver_manager.chrome import ChromeDriverManager
driver = webdriver.Chrome(service=ChromeService(ChromeDriverManager().install()))
你可以尝试这样的方法:
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from webdriver_manager.chrome import ChromeDriverManager
driver = webdriver.Chrome(service=Service(ChromeDriverManager().install()))
你需要安装
pip install selenium
pip install webdriver-manager
参考:
pip install -U selenium webdriver-manager
即使主要版本仍然存在,驱动程序选项也发生了变化(因此 api 不兼容,糟糕的 selenium)
from selenium import webdriver
from webdriver_manager.chrome import ChromeDriverManager
options = webdriver.ChromeOptions()
# do options stuff
driver_path = ChromeDriverManager().install()
driver = webdriver.Chrome(options=options) # not chrome_options, no path argument
driver.service.path = driver_path
您可以使用 webdriver-auto-update 包自动下载/更新驱动程序版本.
安装webdriver-auto-update
:
pip install webdriver-auto-update
对于 Chrome:
from selenium import webdriver
from webdriver_auto_update import check_driver
check_driver("C:\\Users\\User\\PycharmProjects") # dir path to store chromedriver in
driver = webdriver.Chrome()
driver.get('your_website.com')
请注意 - 该目录必须已经存在,它不会为您创建它。
我个人更喜欢使用os.getcwd() + "\\drivers"
路径os.getcwd()
来获取当前目录和驱动程序文件夹,我已将其添加到.gitignore
文件中。
我已将 mac 上的 chromedriver 更新到版本 115.0.5790.110,它解决了二进制文件未找到的问题。
几个月前,我最初来到这里,遇到了同样的错误,并且该线程中提供的解决方案之一有效。然而,它停止工作了,我花了一些时间才找到答案。 查看这篇文章了解解决有关 chromedriver 的任何错误的另一种方法版本。我尝试了一下,立即解决了问题!