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();
}
}
}