Selenium Python中浏览器异常关闭及WinError 10061问题求助
问题分析与解决方案
核心问题本质:你遇到的
WinError 10061是Python客户端和ChromeDriver的连接意外中断,属于驱动通信层面的异常,和NoSuchElementException(元素查找失败)不是同一类。你的try-except只捕获了元素查找异常,没覆盖连接类异常,所以浏览器会被强制终止,但Python进程没崩溃,因此后续打印还能执行。调整异常捕获逻辑:把捕获范围扩大到Selenium的
WebDriverException(所有驱动相关异常的父类),同时确保不在异常块里触发浏览器退出。示例代码:
from selenium import webdriver from selenium.webdriver.common.by import By from selenium.common.exceptions import NoSuchElementException, WebDriverException # 启用浏览器保持存活的参数 options = webdriver.ChromeOptions() options.add_experimental_option("detach", True) driver = webdriver.Chrome(options=options) try: driver.get("你的目标URL") # 查找指定class的元素 target_elem = driver.find_element(By.CLASS_NAME, "目标class名") # 元素存在时的业务逻辑 except NoSuchElementException: print("目标元素没找到,浏览器保持打开状态") except WebDriverException as e: print(f"驱动通信出错: {str(e)}") # 这里可以加重试或其他处理逻辑,不关闭浏览器 finally: # 注释掉自动退出语句,避免浏览器被关闭 # driver.quit() pass # 后续打印逻辑 print("脚本继续执行后续内容")
检查驱动与浏览器版本匹配:ChromeDriver和Chrome浏览器的大版本必须完全一致(比如Chrome 120.x对应ChromeDriver 120.x),版本不匹配是触发连接中断的高频原因。去Chrome设置→关于Chrome查看版本,下载对应版本的ChromeDriver替换现有文件。
清理残留驱动进程:有时候之前的
chromedriver.exe或chrome.exe进程没彻底关闭,会占用端口导致新连接被拒绝。打开任务管理器,结束所有相关进程后再重新运行脚本。
内容的提问来源于stack exchange,提问作者jai mishra
相关产品推荐
相关产品推荐

