You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何让undetected chromedriver适配不同Chrome版本并自动下载驱动?

如何让undetected-chromedriver自动适配不同Chrome版本?

问题场景

我有如下代码,在安装了Chrome 122的电脑上可正常运行:

import undetected_chromedriver as uc
driver = uc.Chrome()
driver.get('https://ballzy.eu/en/men/sport/shoes') 

但在安装了其他Chrome版本(如120)的电脑上运行时,出现如下错误:

(selenium) C:\DEV\Fiverr\ORDER\stefamn_jan669_jankore_janxx2\Ballzy>python test3.py
Traceback (most recent call last):
  File "C:\DEV\Fiverr\ORDER\stefamn_jan669_jankore_janxx2\Ballzy\test3.py", line 2, in <module>
    driver = uc.Chrome(version_main=122)
  File "C:\DEV\.venv\selenium\lib\site-packages\undetected_chromedriver\__init__.py", line 466, in __init__
    super(Chrome, self).__init__(
  File "C:\DEV\.venv\selenium\lib\site-packages\selenium\webdriver\chrome\webdriver.py", line 45, in __init__
    super().__init__(
  File "C:\DEV\.venv\selenium\lib\site-packages\selenium\webdriver\chromium\webdriver.py", line 61, in __init__
    super().__init__(command_executor=executor, options=options)
  File "C:\DEV\.venv\selenium\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 208, in __init__
    self.start_session(capabilities)
  File "C:\DEV\.venv\selenium\lib\site-packages\undetected_chromedriver\__init__.py", line 724, in start_session
    super(selenium.webdriver.chrome.webdriver.WebDriver, self).start_session(
  File "C:\DEV\.venv\selenium\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 292, in start_session
    response = self.execute(Command.NEW_SESSION, caps)["value"]
  File "C:\DEV\.venv\selenium\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 347, in execute
    self.error_handler.check_response(response)
  File "C:\DEV\.venv\selenium\lib\site-packages\selenium\webdriver\remote\errorhandler.py", line 229, in check_response
    raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.WebDriverException: Message: unknown error: cannot connect to chrome at 127.0.0.1:50596
from session not created: This version of ChromeDriver only supports Chrome version 122
Current browser version is 120.0.6099.200

使用标准Selenium驱动时,只需如下定义即可在多台电脑上正常运行:

srv=Service()
driver = webdriver.Chrome(service=srv, options=options) 

请问如何让undetected chromedriver也实现该功能,自动下载对应版本的ChromeDriver以适配不同电脑上的Chrome版本?


解决方案

方法1:利用undetected-chromedriver自带的自动检测机制

不手动指定version_main参数,undetected-chromedriver会自动检测本地安装的Chrome版本,并下载匹配的ChromeDriver:

import undetected_chromedriver as uc
driver = uc.Chrome()  # 自动检测Chrome版本并匹配驱动
driver.get('https://ballzy.eu/en/men/sport/shoes')

方法2:结合Selenium的Service类管理驱动

复用你熟悉的Selenium Service自动下载逻辑,将其传入uc.Chrome():

from selenium.webdriver.chrome.service import Service
import undetected_chromedriver as uc

# Selenium自动下载匹配的ChromeDriver
srv = Service()
# 将Service实例传给undetected-chromedriver
driver = uc.Chrome(service=srv)
driver.get('https://ballzy.eu/en/men/sport/shoes')

方法3:手动检测Chrome版本后指定(更可控)

如果需要明确控制版本,可以先获取本地Chrome的主版本号,再传入version_main:

import undetected_chromedriver as uc
from undetected_chromedriver import version as uc_version

# 获取本地Chrome的主版本号(如120、122)
chrome_main_version = int(uc_version.get_chrome_version().split('.')[0])
driver = uc.Chrome(version_main=chrome_main_version)
driver.get('https://ballzy.eu/en/men/sport/shoes')

注意事项

  • 确保你的undetected-chromedriver是最新版本,旧版本可能存在自动适配逻辑不完善的问题,可通过pip install --upgrade undetected-chromedriver更新
  • 运行程序时需要网络连接,以便自动下载对应版本的ChromeDriver
  • 确保程序有写入驱动文件的权限(部分系统可能需要管理员权限)

内容的提问来源于stack exchange,提问作者Rapid1898

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.29 04:33:13