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

Windows下导入Selenium相关ipynb函数报chromedriver路径错误

问题根因

这个报错和ipynb的导入逻辑没有关系,核心是Windows环境下跨notebook导入函数时,新的执行上下文不会同步原notebook里的临时环境配置:

  • Mac端默认会把/usr/local/bin、/opt/homebrew/bin这类chromedriver常规存放路径加入全局系统PATH,不管在哪个notebook上下文运行代码都能读到驱动,所以不会报错
  • Windows下如果你是在原notebook里临时通过代码给PATH追加chromedriver路径,或者把驱动放在了原notebook的工作目录下,跨文件导入函数时,新notebook的工作目录、临时PATH配置都和原文件相互独立,自然找不到chromedriver可执行文件。
可直接落地的解决方法

按省事程度从高到低排序:

  1. 升级Selenium到4.6以上版本,彻底省略手动配驱动的步骤
    4.6及以上版本的Selenium自带Selenium Manager组件,会自动匹配当前设备安装的Chrome版本下载对应chromedriver,完全不需要手动配置PATH、指定驱动路径,跨Windows/Mac运行都不会出现驱动找不到的问题。升级完成后直接删掉原来初始化webdriver时手动传executable_path的代码,初始化直接写driver = webdriver.Chrome()即可正常使用。
  2. 在爬取函数内部硬编码chromedriver的绝对路径
    如果暂时不想升级Selenium,就修改原notebook里my_function初始化webdriver的代码,直接传入chromedriver.exe的完整绝对路径,不管在哪个文件里导入这个函数都能准确定位到驱动,示例代码:
    from selenium import webdriver
    from selenium.webdriver.chrome.service import Service
    
    def my_function(x, y, z):
        # 替换为自己设备上chromedriver.exe的实际存放路径
        service = Service(executable_path=r'C:\personal\tools\chromedriver\chromedriver.exe')
        driver = webdriver.Chrome(service=service)
        # 原有爬取逻辑保持不变即可
    
  3. 在导入函数的新notebook里提前追加PATH配置
    不想修改原函数代码的话,就在新notebook的最开头、执行导入语句之前,把chromedriver所在的文件夹路径加入环境变量:
    import os
    # 注意这里填写的是chromedriver.exe所在的文件夹路径,不是exe文件本身的路径
    os.environ["PATH"] += os.pathsep + r'C:\personal\tools\chromedriver'
    # 配置完成后再执行导入、运行函数
    from ipynb.fs.full.my_notebook import my_function
    df = my_function(x, y, z)
    
  4. 临时调试方案:把chromedriver.exe直接放到第二个notebook的工作目录下
    Selenium默认会扫描当前工作目录下的驱动文件,放对位置不需要改任何配置就能识别,缺点是换个notebook工作目录就会再次触发报错,只适合临时跑数场景使用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 14:18:17