使用ChromeDriverManager安装驱动时出现FileNotFoundError的原因
ChromeDriverManager 安装驱动时出现 FileNotFoundError 的原因及解决办法
问题场景
使用ChromeDriverManager自动安装Chrome驱动时触发FileNotFoundError: [WinError 3] Specified path not found,代码如下:
from selenium import webdriver from webdriver_manager.chrome import ChromeDriverManager chrome_driver = ChromeDriverManager().install() driver = webdriver.Chrome(chrome_driver) driver.get("https://www.amazon.com")
报错信息
Traceback (most recent call last): File "C:\Users\dongh\PycharmProjects\day-48\main.py", line 5, in <module> chrome_driver = ChromeDriverManager().install() ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Users\dongh\PycharmProjects\day-48\venv\Lib\site-packages\webdriver_manager\chrome.py", line 40, in install driver_path = self._get_driver_binary_path(self.driver) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Users\dongh\PycharmProjects\day-48\venv\Lib\site-packages\webdriver_manager\core\manager.py", line 35, in _get_driver_binary_path binary_path = self._cache_manager.find_driver(driver) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Users\dongh\PycharmProjects\day-48\venv\Lib\site-packages\webdriver_manager\core\driver_cache.py", line 101, in find_driver browser_version = self._os_system_manager.get_browser_version_from_os(browser_type) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Users\dongh\PycharmProjects\day-48\venv\Lib\site-packages\webdriver_manager\core\os_manager.py", line 78, in get_browser_version_from_os OSType.WIN: windows_browser_apps_to_cmd( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Users\dongh\PycharmProjects\day-48\venv\Lib\site-packages\webdriver_manager\core\utils.py", line 28, in windows_browser_apps_to_cmd powershell = determine_powershell() ^^^^^^^^^^^^^^^^^^^^^^ File "C:\Users\dongh\PycharmProjects\day-48\venv\Lib\site-packages\webdriver_manager\core\utils.py", line 54, in determine_powershell with subprocess.Popen( ^^^^^^^^^^^^^^^^^ File "C:\Users\dongh\AppData\Local\Programs\Python\Python311\Lib\subprocess.py", line 1024, in __init__ self._execute_child(args, executable, preexec_fn, close_fds, File "C:\Users\dongh\AppData\Local\Programs\Python\Python311\Lib\subprocess.py", line 1509, in _execute_child hp, ht, pid, tid = _winapi.CreateProcess(executable, args, ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ FileNotFoundError: [WinError 3] Specified path not found
原因分析
从报错栈可定位核心问题:WebDriverManager需要调用PowerShell检测本地Chrome浏览器版本,但系统无法找到PowerShell的可执行文件路径。常见诱因包括:
- PowerShell未安装,或其可执行文件(
powershell.exe)未加入系统环境变量PATH - 虚拟环境运行权限不足,无法访问系统级PowerShell路径
- PowerShell默认路径被修改或损坏
解决办法
1. 验证PowerShell可用性
按下Win+R打开运行窗口,输入powershell并回车:
- 若能正常启动PowerShell,说明已安装,进入下一步;
- 若无法启动,需从微软官方渠道下载安装对应版本的PowerShell。
2. 添加PowerShell路径到环境变量
powershell.exe默认路径为C:\Windows\System32\WindowsPowerShell\v1.0\,将该路径添加到系统PATH:
- 右键「此电脑」→「属性」→「高级系统设置」→「环境变量」
- 在「系统变量」中找到
PATH,点击「编辑」 - 添加上述路径,点击「确定」保存
- 重启终端和IDE后重新运行代码
3. 手动指定Chrome驱动版本(临时 workaround)
如果暂时无法修复PowerShell问题,可跳过版本检测,手动指定与本地Chrome匹配的驱动版本:
from selenium import webdriver from webdriver_manager.chrome import ChromeDriverManager # 替换为你本地Chrome的版本号(可在Chrome设置→关于Chrome中查看) chrome_driver = ChromeDriverManager(driver_version="118.0.5993.70").install() driver = webdriver.Chrome(chrome_driver) driver.get("https://www.amazon.com")
4. 检查虚拟环境权限
如果使用虚拟环境运行代码,确保启动IDE或终端时选择「以管理员身份运行」,避免权限不足导致无法访问系统路径。
内容的提问来源于stack exchange,提问作者Gaeun Yoo
相关产品推荐
相关产品推荐

