通过 Java 调用 ChromeDriver 启动 Chrome 浏览器后,当用户**手动点击按钮**时导致标签页崩溃

import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.chrome.ChromeOptions;
import org.openqa.selenium.remote.CapabilityType;
import java.util.HashMap;
import java.util.Map;

public class StableChromeLauncher {

    public static void main(String[] args) {
        // 1. 设置 ChromeDriver 路径
        System.setProperty("webdriver.chrome.driver", "/path/to/chromedriver");
        
        // 2. 创建优化配置
        ChromeOptions options = new ChromeOptions();
        
        // 核心稳定性配置
        options.addArguments("--disable-dev-shm-usage"); // 解决共享内存问题
        options.addArguments("--no-sandbox");            // 禁用沙箱模式
        options.addArguments("--disable-gpu");           // 禁用GPU加速
        
        // 内存优化配置
        options.addArguments("--disable-extensions");
        options.addArguments("--disable-background-timer-throttling");
        options.addArguments("--disable-backgrounding-occluded-windows");
        options.addArguments("--disable-renderer-backgrounding");
        
        // 启用自动崩溃恢复
        options.setCapability(CapabilityType.ENABLE_PROFILING_CAPABILITY, true);
        
        // 3. 实验性功能配置
        Map<String, Object> prefs = new HashMap<>();
        prefs.put("profile.default_content_setting_values.notifications", 2); // 禁用通知
        options.setExperimentalOption("prefs", prefs);
        
        // 4. 内存限制配置(针对手动操作)
        options.addArguments("--renderer-process-limit=1");
        options.addArguments("--single-process"); // 单进程模式
        
        // 5. 启动浏览器
        WebDriver driver = new ChromeDriver(options);
        
        try {
            // 6. 导航到目标页面
            driver.get("https://your-target-page.com");
            
            System.out.println("浏览器已启动,请手动操作页面...");
            System.out.println("重要提示:请等待30秒后再操作页面,让浏览器完成初始化");
            
            // 7. 保持浏览器打开以供手动操作
            Thread.sleep(Long.MAX_VALUE);
            
        } catch (InterruptedException e) {
            Thread.currentThread().interrupt();
        } finally {
            driver.quit();
        }
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值