ChromeDriverManager().install()报json.decoder.JSONDecodeError的原因及解决方法
JSONDecodeError 问题排查与解决
问题现象
此前代码运行正常且未做任何修改,重新安装依赖后运行程序,终端抛出如下报错:
<snip> cd_service_obj = Service(ChromeDriverManager().install()) File "C:\...\my_venv\lib\site-packages\webdriver_manager\chrome.py", line 39, in install driver_path = self._get_driver_path(self.driver) File "C:\...\my_venv\lib\site-packages\webdriver_manager\core\manager.py", line 26, in _get_driver_path binary_path = self.driver_cache.find_driver(driver) File "C:\...\my_venv\lib\site-packages\webdriver_manager\core\driver_cache.py", line 101, in find_driver metadata = self.get_metadata() File "C:\...\my_venv\lib\site-packages\webdriver_manager\core\driver_cache.py", line 135, in get_metadata return json.load(outfile) File "C:\Users\myself\AppData\Local\Programs\Python\Python310\lib\json\__init__.py", line 293, in load return loads(fp.read(), File "C:\Users\myself\AppData\Local\Programs\Python\Python310\lib\json\__init__.py", line 346, in loads return _default_decoder.decode(s) File "C:\Users\myself\AppData\Local\Programs\Python\Python310\lib\json\decoder.py", line 337, in decode obj, end = self.raw_decode(s, idx=_w(s, 0).end()) File "C:\Users\myself\AppData\Local\Programs\Python\Python310\lib\json\decoder.py", line 355, in raw_decode raise JSONDecodeError("Expecting value", s, err.value) from None json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)
重建虚拟环境后错误依然存在。
原因分析
错误根源是webdriver_manager的系统级缓存文件损坏或为空。webdriver_manager会把驱动元数据缓存到用户目录下的.wdm文件夹(而非虚拟环境内部),因此重建虚拟环境无法清除该缓存。当程序尝试读取空的或格式错误的JSON元数据文件时,就会触发JSONDecodeError。
解决步骤
- 定位webdriver_manager缓存目录:路径为
C:\Users\myself\.wdm(将myself替换为你的实际用户名) - 删除该目录下的所有文件和子文件夹,彻底清除损坏的缓存
- 重新运行Python程序,webdriver_manager会自动重新下载适配的ChromeDriver并生成新的合法元数据文件
内容的提问来源于stack exchange,提问作者Joshua Harwood
相关产品推荐
相关产品推荐

