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

Selenium 4.12离线模式下使用本地ChromeDriver的配置及报错解决

问题描述
  • 需求:在无网络连接的服务器上运行Python版Selenium代码,通过指定本地驱动路径实现离线使用Selenium驱动管理器。
  • 尝试代码:
    # Line#1
    print(config().get_chromexecutable_path())
    # Line#2
    service = ChromeService(executable_path=config().get_chromexecutable_path())
    # Line#3
    driver = webdriver.Chrome(service=service, options=options)
    
  • 问题:Line#1能正确输出路径“drivers/chromedriver”,但运行时抛出NoSuchDriverException错误,错误相关代码及信息如下:
@staticmethod
def get_path(service: Service, options: BaseOptions) -> str:
    path = service.path
    try:
        path = SeleniumManager().driver_location(options) if path is None else path
    except Exception as err:
        msg = f"无法使用Selenium Manager获取{options.capabilities['browserName']}对应的驱动程序。"
        raise NoSuchDriverException(msg) from err

    if path is None or not Path(path).is_file():
raise NoSuchDriverException(f"无法定位或获取{options.capabilities['browserName']}对应的驱动程序")

错误详情:

E           selenium.common.exceptions.NoSuchDriverException: Message: 无法定位或获取Chrome驱动程序
venv\Lib\site-packages\selenium\webdriver\common\driver_finder.py:44: NoSuchDriverException
解决方案

核心原因是Selenium 4.x默认优先调用Selenium Manager在线拉取驱动,离线环境下该请求失败后,若指定的本地驱动路径存在解析错误、权限不足或版本不匹配等问题,就会触发该异常。可通过以下方式解决:

  • 使用绝对路径指定驱动
    相对路径易受工作目录影响导致解析错误,改用绝对路径:

    import os
    # 获取脚本所在目录的绝对路径
    script_dir = os.path.dirname(os.path.abspath(__file__))
    # 拼接驱动绝对路径
    driver_path = os.path.join(script_dir, "drivers", "chromedriver")
    service = ChromeService(executable_path=driver_path)
    driver = webdriver.Chrome(service=service, options=options)
    
  • 禁用Selenium Manager自动获取
    通过环境变量强制跳过Selenium Manager,直接使用指定的本地驱动:

    import os
    os.environ['SE_SKIP_MANAGER'] = '1'
    
    service = ChromeService(executable_path=config().get_chromexecutable_path())
    driver = webdriver.Chrome(service=service, options=options)
    
  • 检查驱动文件有效性

    1. 确认drivers/chromedriver是可执行文件(Linux/macOS需执行chmod +x drivers/chromedriver赋予权限)
    2. 确认驱动版本与服务器上Chrome浏览器的主版本号完全匹配(如Chrome 114需对应chromedriver 114.x)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.30 21:43:16