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

能否将固定版本Chrome与Chromedriver打包,避免频繁更新驱动适配?

解决方案

以下是几种不需要禁用Chrome自动更新、同时可以解决版本对齐和权限重复配置问题的方案,支持将相关组件完全打包到venv虚拟环境中:

方案1:使用Selenium 4.6+ 内置Selenium Manager(推荐,配置成本最低)

Selenium从4.6版本开始内置了Selenium Manager工具,无需手动安装任何额外依赖,也不需要手动下载、配置Chromedriver路径:

  • 工具会自动检测当前环境的Chrome版本,自动下载匹配的Chromedriver,完全避免版本不兼容问题
  • 可以通过配置环境变量SE_MANAGER_CACHE_PATH将驱动缓存路径指定为venv下的目录(比如./venv/selenium_cache),所有相关文件都会存在虚拟环境内部
  • 初始化代码不需要额外配置路径,示例如下:
from selenium import webdriver
driver = webdriver.Chrome()

方案2:打包便携版Chrome+对应驱动到venv(完全隔离,不受系统Chrome更新影响)

如果需要完全固定运行环境,不受系统Chrome版本变动影响,可以直接把独立Chrome包和对应驱动打包进venv:

  • 下载指定版本的Chrome便携版(Windows提供官方便携包,macOS/Linux可提取官方安装包的独立二进制文件),存放到venv下的自定义目录,比如./venv/chrome/
  • 下载和该Chrome版本完全匹配的Chromedriver,放到同目录下
  • 首次配置时给对应二进制文件加执行权限即可,macOS/Linux执行命令:chmod +x ./venv/chrome/*;如果遇到macOS的开发者验证拦截,执行命令xattr -d com.apple.quarantine ./venv/chrome/chromedriver即可跳过验证,不需要手动修改系统设置
  • 初始化时明确指定路径即可,示例代码:
from selenium import webdriver
from selenium.webdriver.chrome.options import Options

chrome_options = Options()
# 指向venv内的Chrome二进制文件,macOS/Linux修改为对应路径即可
chrome_options.binary_location = "./venv/chrome/chrome.exe"
driver = webdriver.Chrome(
    executable_path="./venv/chrome/chromedriver",
    options=chrome_options
)

方案3:低版本Selenium使用webdriver-manager

如果你使用的Selenium版本低于4.6,可以用第三方webdriver-manager库实现自动版本匹配,同时配置缓存到venv内:

  • 安装依赖:pip install webdriver-manager
  • 配置环境变量指定缓存路径到venv目录,示例代码:
from selenium import webdriver
from webdriver_manager.chrome import ChromeDriverManager
import os

# 设置驱动缓存到venv内的wdm_cache目录
os.environ["WDM_CACHE_DIR"] = "./venv/wdm_cache"
os.environ["WDM_LOCAL"] = "1"

driver = webdriver.Chrome(ChromeDriverManager().install())

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 14:15:03