Selenium报错chrome not reachable,如何将Chrome从94.0.4606.71降级至.61?
问题分析
这个chrome not reachable报错本质是Selenium启动的ChromeDriver进程无法和Chrome浏览器进程建立通信,你目前的Chrome和ChromeDriver属于同一个大版本(94),小版本差异通常不是核心诱因,你的代码逻辑错误才是优先要排查的问题。
优先解决方案(无需降级Chrome)
1. 修复代码逻辑错误
你当前的YouTube操作逻辑存在两处致命问题:
- 直接将音频对象
audio赋值给keyword传入send_keys,方法要求传入字符串而非音频对象 - 浏览器操作放到了语音识别的try逻辑之外,且执行完搜索直接调用
quit()关闭浏览器,流程完全混乱
修复后的参考代码如下:
if 'YouTube' in r2.recognize_google(audio): r2 = sr.Recognizer() try: with sr.Microphone() as source: print("What do you want to see?") audio = r2.listen(source) # 先完成语音识别得到文本关键词 keyword = r2.recognize_google(audio) print(f"搜索内容:{keyword}") # 再执行浏览器操作 browser_driver.get('https://www.youtube.com/') elem = browser_driver.find_element_by_id('search') elem.send_keys(keyword , Keys.RETURN) # 不需要立刻关闭浏览器可以注释掉下面这行 # browser_driver.quit() except sr.UnknownValueError: print('无法识别语音内容') except sr.RequestError: print('语音识别服务请求失败')
2. 修复ChromeDriver启动配置
给Chrome添加启动参数规避进程通信问题,初始化浏览器的代码修改为:
from selenium.webdriver.chrome.options import Options chrome_options = Options() chrome_options.add_argument('--no-sandbox') chrome_options.add_argument('--disable-dev-shm-usage') chrome_options.add_argument('--remote-debugging-port=9222') # 手动指定和Chrome版本匹配的ChromeDriver路径也可以,替换自动安装的逻辑 browser_driver = webdriver.Chrome(ChromeDriverManager().install(), options=chrome_options)
3. 清理环境冲突
- 运行代码前先杀干净所有残留的Chrome和ChromeDriver后台进程
- 检查防火墙、安全软件是否拦截了Chrome的本地网络通信
- 可以手动下载对应Chrome 94.0.4606.71版本的ChromeDriver,替换webdriver_manager自动安装的版本,手动指定路径加载
降级Chrome的操作方法(非必要不推荐)
如果确认是版本兼容问题需要降级,可以按以下步骤操作:
- 卸载当前Chrome,卸载时不要勾选「删除个人浏览数据」选项,避免丢失书签、密码等个人数据
- 下载Chrome 94.0.4606.61版本的官方离线安装包
- 安装完成后立刻关闭Chrome自动更新:Windows系统可以在服务管理中禁用所有Google更新相关服务,也可以修改Chrome安装目录下update文件夹的权限,禁止系统运行更新程序
内容的提问来源于stack exchange,提问作者Eagle27
相关产品推荐
相关产品推荐

