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

如何让Selenium 4(Java 17)执行代码后不自动关闭浏览器?

解决Selenium 4+Java 17中浏览器自动关闭的问题

要让浏览器保持打开状态直到手动调用driver.close()或driver.quit(),核心是通过ChromeOptions添加--detach启动参数,让浏览器与WebDriver驱动进程分离,避免驱动进程结束时自动关闭浏览器。

具体实现步骤

  • 导入org.openqa.selenium.chrome.ChromeOptions类
  • 创建ChromeOptions实例,添加--detach参数
  • 将配置好的ChromeOptions传入WebDriverManager的create()方法中

修改后的完整代码

import java.time.Duration;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeOptions;
import io.github.bonigarcia.wdm.WebDriverManager;

public class CloseBrowserTest_1
{
    static WebDriver driver = null;

    public static void main(String[] args) throws InterruptedException
    {
        // 配置Chrome启动参数,添加detach选项
        ChromeOptions options = new ChromeOptions();
        options.addArguments("--detach");
        
        // 传入配置好的options创建driver
        driver = WebDriverManager.chromedriver().capabilities(options).create();      
        driver.manage().window().maximize();
        driver.manage().timeouts().implicitlyWait(Duration.ofSeconds(5));   
        driver.manage().deleteAllCookies();
        
        driver.get("https://www.google.com");
        System.out.println("Title : " + driver.getTitle());
        System.out.println("Current URL : " + driver.getCurrentUrl());
    }
}

原理说明

Selenium 4默认会在WebDriver实例被销毁(比如main方法执行完毕、JVM退出)时,自动终止关联的浏览器进程。--detach参数会告诉Chrome浏览器,在WebDriver驱动进程结束后不要自动关闭,而是保持运行状态,直到手动关闭或调用关闭方法。

补充说明

如果只是临时让程序不退出以观察浏览器,可以在main方法末尾添加Thread.sleep(Long.MAX_VALUE)或等待用户输入,但这只是临时方案,--detach才是更符合需求的持久化解决方案。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 23:45:59