EC2上Chrome与ChromeDriver版本一致却遇Selenium版本不兼容报错
问题分析与解决思路
核心原因
undetected_chromedriver(简称uc)自带ChromeDriver自动管理机制,即便你显式指定了executable_path,部分版本的uc仍会忽略该参数,自动下载并使用它判定的“匹配版本”(此处错误下载了110版本),导致与本地109版本的Chrome不兼容。
验证步骤
检查uc后台下载的ChromeDriver:
- 查看uc默认缓存目录,执行命令:
ls ~/.undetected_chromedriver - 若存在110版本的ChromeDriver文件,即可确认uc自动下载并优先使用了该版本。
- 查看uc默认缓存目录,执行命令:
确认uc版本兼容性:
- 不同版本的uc对
executable_path参数的处理逻辑存在差异,部分旧版本存在参数失效的bug。
- 不同版本的uc对
解决办法
方法1:正确指定uc的Driver路径
注意uc的参数名与原生Selenium不同,需使用driver_executable_path而非executable_path:
import undetected_chromedriver as uc driver = uc.Chrome(options=options, driver_executable_path='/usr/bin/chromedriver')
方法2:禁用uc的自动下载机制
通过环境变量禁止uc自动下载ChromeDriver:
import os import undetected_chromedriver as uc os.environ['UC_DOWNLOAD_DISABLE'] = '1' driver = uc.Chrome(options=options, driver_executable_path='/usr/bin/chromedriver')
方法3:清理uc缓存并重新指定
- 删除uc默认缓存目录:
rm -rf ~/.undetected_chromedriver - 重新运行脚本并确保正确传入
driver_executable_path参数。
方法4:调整uc版本
若上述方法无效,尝试升级或降级到兼容版本:
# 升级到最新版 pip install --upgrade undetected-chromedriver # 降级到指定兼容版本(示例:3.5.5) pip install undetected-chromedriver==3.5.5
内容的提问来源于stack exchange,提问作者Mike
相关产品推荐
相关产品推荐

