Python Selenium版本兼容却报chrome not reachable错误排查
版本兼容场景下
chrome not reachable报错排查方案 - 已排除前置问题:你当前使用的Chrome 88.0.4324.150与Chromedriver 88.0.4324.96版本匹配,可排除版本不兼容触发的报错。
- 原因1:Chromedriver可执行文件路径不规范
验证方式:打开文件资源管理器进入D:/Downloads目录,在「查看」面板勾选文件扩展名选项,确认chromedriver文件的完整后缀为.exe,而非无后缀文件、或是Chromedriver所在的文件夹。
解决方式:将驱动初始化代码修改为完整可执行文件路径:driver = webdriver.Chrome(r'D:/Downloads/chromedriver.exe') - 原因2:安全软件拦截Chromedriver与Chrome的本地回环通信
验证方式:临时关闭Windows Defender防火墙、第三方杀毒软件的实时防护功能,重新运行启动与跳转代码,确认是否复现报错。
解决方式:在安全软件的信任列表中添加chromedriver.exe与系统Chrome主程序chrome.exe,允许二者通过127.0.0.1端口进行本地通信。 - 原因3:Chrome默认启动弹窗阻断驱动通信
验证方式:手动打开系统安装的Chrome程序,观察启动后是否自动弹出通知权限申请、默认浏览器设置引导、更新提示等弹窗。
解决方式:初始化驱动时添加启动参数屏蔽所有默认弹窗,示例代码:from selenium.webdriver.chrome.options import Options chrome_options = Options() # 屏蔽首次运行引导 chrome_options.add_argument("--no-first-run") # 屏蔽默认浏览器检查提示 chrome_options.add_argument("--no-default-browser-check") # 屏蔽通知权限申请 chrome_options.add_argument("--disable-notifications") driver = webdriver.Chrome(r'D:/Downloads/chromedriver.exe', options=chrome_options) - 原因4:Chrome用户数据目录权限/占用冲突
验证方式:给驱动添加独立的用户数据目录启动参数,重新运行代码:
若不再触发报错,说明原默认用户目录被日常使用的Chrome进程占用,或存在权限不足问题。chrome_options.add_argument("--user-data-dir=D:/temp/chrome_auto")
解决方式:固定使用独立的自动化专用用户目录,避免与日常Chrome的配置、进程冲突。 - 原因5:Selenium 3.141.0自动分配调试端口失败
验证方式:给驱动添加固定远程调试端口的启动参数,重新运行代码:
若报错消失,说明Selenium自动分配随机调试端口时,出现了端口被占用、通信握手失败的问题。chrome_options.add_argument("--remote-debugging-port=9222")
解决方式:固定远程调试端口使用,或升级Selenium至3.141.0以上的稳定版本。
内容的提问来源于stack exchange,提问作者Johan Dingler
相关产品推荐
相关产品推荐

