Selenium中webdriver.Chrome(ChromeDriverManager().install())报JSONDecodeError求助
问题描述
此前可正常运行的Python Selenium代码,如今调用webdriver.Chrome(ChromeDriverManager().install())时触发json.decoder.JSONDecodeError错误。已尝试卸载并重装webdriver-manager,但问题仍未解决。报错出现在find_driver流程中,具体回溯信息如下:
Traceback (most recent call last): File "c:\Users\user\Documents\GitHub\Autobet\test\test_oddsportal.py", line 32, in <module> data = test_oddsportal() File "c:\Users\user\Documents\GitHub\Autobet\test\test_oddsportal.py", line 27, in test_oddsportal df = OddsPortal.get_data(a) File "C:\Users\user\Documents\GitHub\Autobet\scraping\oddsportal.py", line 891, in get_data driver = OddsPortal.login('ParionsPro', 'fb00296b') File "C:\Users\user\Documents\GitHub\Autobet\scraping\oddsportal.py", line 97, in login File "C:\Users\user\anaconda3\envs\autobet\lib\site-packages\webdriver_manager\chrome.py", line 39, in install driver_path = self._get_driver_path(self.driver) File "C:\Users\user\anaconda3\envs\autobet\lib\site-packages\webdriver_manager\core\manager.py", line 26, in _get_driver_path binary_path = self.driver_cache.find_driver(driver) File "C:\Users\user\anaconda3\envs\autobet\lib\site-packages\webdriver_manager\core\driver_cache.py", line 101, in find_driver metadata = self.get_metadata() File "C:\Users\user\anaconda3\envs\autobet\lib\site-packages\webdriver_manager\core\driver_cache.py", line 135, in get_metadata return json.load(outfile) File "C:\Users\user\anaconda3\envs\autobet\lib\json\__init__.py", line 293, in load return loads(fp.read(), File "C:\Users\user\anaconda3\envs\autobet\lib\json\__init__.py", line 346, in loads return _default_decoder.decode(s) File "C:\Users\user\anaconda3\envs\autobet\lib\json\decoder.py", line 337, in decode obj, end = self.raw_decode(s, idx=_w(s, 0).end()) File "C:\Users\user\anaconda3\envs\autobet\lib\json\decoder.py", line 355, in raw_decode raise JSONDecodeError("Expecting value", s, err.value) from None json.decoder.JSONDecodeError: Expecting value: line 14 column 46 (char 638)
解决方案
清理webdriver-manager缓存文件:
错误源于缓存的metadata.json文件损坏,直接删除该文件即可。Windows系统下文件路径为C:\Users\<你的用户名>\.wdm\metadata.json,删除后重新运行代码,webdriver-manager会自动生成新的合法元数据文件。指定ChromeDriver版本:
若清理缓存无效,可直接指定与本地Chrome版本匹配的Driver版本,绕过缓存读取。先在Chrome地址栏输入chrome://version/查看浏览器版本,然后修改代码:from selenium import webdriver from webdriver_manager.chrome import ChromeDriverManager # 替换为你的Chrome版本号 driver = webdriver.Chrome(ChromeDriverManager(version="126.0.6478.127").install())降级webdriver-manager版本:
新版本可能存在兼容性问题,降级到稳定版本(如3.8.6)尝试:pip uninstall webdriver-manager -y pip install webdriver-manager==3.8.6
内容的提问来源于stack exchange,提问作者Florian Raulet
相关产品推荐
相关产品推荐

