Python3中Selenium ChromeDriver启动报错chrome not reachable求助
chrome not reachable错误 我来帮你排查这个chrome not reachable的问题,这是Selenium和ChromeDriver配合时非常常见的报错,我整理了几个大概率能解决的方案,你可以按顺序尝试:
1. 优先检查ChromeDriver和Chrome版本是否匹配
这是最常见的触发原因!ChromeDriver的版本必须和你本地安装的Chrome浏览器大版本完全一致(比如Chrome是119.x,ChromeDriver也要用119.x的版本,小版本差异影响不大)。
- 查看Chrome版本:打开Chrome → 右上角三个点 → 帮助 → 关于Google Chrome,就能看到具体版本号。
- 解决办法:下载对应版本的ChromeDriver替换你当前的驱动文件,确保版本匹配。
2. 优化Driver实例的管理,避免重复创建
你现在的goTo()函数每次调用都会新建一个ChromeDriver实例,如果之前的实例没有被正确关闭,很容易导致端口占用、进程冲突,进而触发“chrome not reachable”。
这里给你优化一下代码,推荐用全局实例+正确关闭的方式:
from selenium import webdriver from selenium.webdriver.chrome.service import Service # 全局维护一个Driver实例,避免重复初始化 driver = None def goTo(target_url): global driver if driver is None: # 使用Service类是Selenium 4及以上版本的规范写法,比直接传executable_path更稳妥 service = Service(r'C:\Users\alice\Desktop\chromedriver') driver = webdriver.Chrome(service=service) # 添加隐式等待,提升页面加载的稳定性 driver.implicitly_wait(10) driver.get(target_url) # 使用示例 if __name__ == "__main__": goTo('https://reports.blm.gov/report/LR2000/23/Pub-MC-Geo-Index') # 记得在脚本结束时彻底关闭Driver进程 # driver.quit()
注意:一定要用driver.quit()来关闭,而不是driver.close()——后者只关闭当前标签页,不会终止ChromeDriver进程,容易残留后台进程引发问题。
3. 检查Chrome浏览器本身是否正常运行
有时候本地Chrome浏览器损坏、被后台进程占用,也会导致Driver无法连接:
- 先手动打开Chrome,确认能正常启动和访问网页;
- 打开任务管理器,结束所有和Chrome相关的进程(包括
chrome.exe和chromedriver.exe),然后重新运行你的代码。
4. 添加Chrome启动参数,解决环境兼容问题
某些系统环境下,Chrome的沙箱模式或GPU加速会干扰Driver的连接,你可以尝试添加以下启动参数:
from selenium.webdriver.chrome.options import Options def goTo(): chrome_options = Options() # 禁用沙箱模式(适合受限环境,Windows/Linux都可以试试) chrome_options.add_argument('--no-sandbox') # 禁用GPU加速,避免渲染相关的连接问题 chrome_options.add_argument('--disable-gpu') # 指定固定的调试端口,确保Driver和Chrome能正常通信 chrome_options.add_argument('--remote-debugging-port=9222') service = Service(r'C:\Users\alice\Desktop\chromedriver') driver = webdriver.Chrome(service=service, options=chrome_options) driver.get('https://reports.blm.gov/report/LR2000/23/Pub-MC-Geo-Index')
5. 再次确认ChromeDriver的文件路径
虽然你用了r前缀避免转义问题,但还是要确认chromedriver.exe确实存在于C:\Users\alice\Desktop\这个路径下,文件名没有拼写错误。如果嫌绝对路径麻烦,可以把chromedriver放到Python的Scripts目录下(比如C:\PythonXX\Scripts),这样直接写webdriver.Chrome()就能自动找到驱动了。
内容的提问来源于stack exchange,提问作者Alice Hsieh

