You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.02 17:15:40