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

Selenium中如何立即执行driver.quit()强制关闭浏览器

Selenium调用driver.quit()强制立即关闭浏览器的解决方法

原因说明

Selenium默认页面加载策略为normal,会等待页面所有静态资源(图片、脚本、样式表等)全部加载完成后,才会执行后续所有WebDriver指令,所以driver.quit()会被阻塞直到页面加载完成才会触发。

解决方案

  • 方案1:修改初始化配置,调整页面加载策略
    将页面加载策略调整为eager(仅等待DOM树加载完成即可执行指令,不需要等静态资源)或者none(完全不等待页面加载,浏览器返回响应后就立即执行后续指令),配置后driver.quit()就可以直接触发无需等待。
    页面加载策略配置仅支持Selenium 3.2及以上版本
    Python + Chrome示例:
    from selenium import webdriver
    from selenium.webdriver.chrome.options import Options
    
    opt = Options()
    opt.page_load_strategy = 'none' # 按需替换为eager也可以
    driver = webdriver.Chrome(options=opt)
    
    Java + Chrome示例:
    import org.openqa.selenium.chrome.ChromeOptions;
    import org.openqa.selenium.chrome.ChromeDriver;
    
    public class Launch {
      public static void main(String[] args) {
        ChromeOptions opt = new ChromeOptions();
        opt.setPageLoadStrategy("none");
        ChromeDriver driver = new ChromeDriver(opt);
      }
    }
    
  • 方案2:直接强制杀死对应进程
    无需依赖WebDriver指令,直接通过系统命令杀掉浏览器和驱动进程,不会被页面加载逻辑阻塞,可立即关闭。
    Windows系统Python示例:
    import os
    # 强制杀死Chrome进程
    os.system("taskkill /f /im chrome.exe /t")
    # 强制杀死ChromeDriver进程
    os.system("taskkill /f /im chromedriver.exe /t")
    
    Mac/Linux系统Python示例:
    import os
    # 强制杀死Chrome进程
    os.system("pkill -f chrome")
    # 强制杀死ChromeDriver进程
    os.system("pkill -f chromedriver")
    
  • 方案3:先关闭所有窗口再执行quit
    执行driver.quit()前先遍历所有打开的窗口句柄,逐个调用driver.close()关闭,再执行quit可以避免被加载逻辑阻塞。
    示例代码:
    for handle in driver.window_handles:
        driver.switch_to.window(handle)
        driver.close()
    driver.quit()
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 09:06:04