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

如何正确使用driver.quit()实现webdriver正常重启

Selenium webdriver优雅关闭及重启报错解决方案

报错根因

  • 报错本质是旧driver实例销毁后,代码仍尝试向已经关闭的驱动端口发送请求
  • 你代码中调用的driver.stop_client()是冗余API,和driver.quit()同时调用可能会干扰资源释放逻辑,导致驱动进程残留或者端口未正常释放

修复方案

1. 调整关闭阶段代码

移除冗余的stop_client()调用,关闭后显式清空driver变量,避免误操作旧实例:

if loopNumber == 15:
    timeStop = timeit.default_timer()
    execution_time = timeStop - timeStart
    print("Program Executed in "+str(execution_time/60)+" Minutes")
    # 只保留quit方法即可,不需要调用stop_client
    driver.quit()
    # 显式标记旧实例已销毁,避免后续逻辑误调用
    driver = None
    time.sleep(600)

2. 重启时重新初始化driver

等待600秒后,必须重新实例化driver对象,完全复用之前的driver初始化逻辑即可,不要尝试复用旧的driver实例:

# 重启示例(对应你原有初始化driver的逻辑原样重写一遍即可)
from selenium.webdriver import Chrome
from selenium.webdriver.chrome.options import Options

# 原有options配置原样保留
chrome_options = Options()
# chrome_options.add_argument('--headless') 你之前加的启动参数都原样编写
driver = Chrome(options=chrome_options)

3. 偶现端口占用的兜底处理

如果还是偶尔出现端口被占用、无法启动驱动的问题,可以在调用quit后增加强制清理残留进程的逻辑:

import os
# Windows系统清理残留驱动和浏览器进程,其他系统替换为对应的杀进程命令即可
os.system("taskkill /f /im chromedriver.exe 2>nul")
os.system("taskkill /f /im chrome.exe 2>nul")

内容的提问来源于stack exchange,提问作者Emoyaki

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 06:54:04