Chrome 129版本下ChromeDriver默认下载目录配置问题求助
Chrome 129版本下配置ChromeDriver默认下载目录的解决方法
先修正你代码里的核心错误
你代码里的System.getProperty("C:\Users\JTomassi\Desktop\SSEG_Portales\Documentos")用法完全错误:System.getProperty()是用来读取系统属性(比如user.home)的方法,不是直接传入路径字符串。直接这么写会返回null,导致下载目录配置失效。
正确的配置步骤
修正路径赋值
Windows路径里的反斜杠需要转义(写成\\),或者直接用正斜杠,直接把路径字符串赋值给download.default_directory即可,无需调用System.getProperty()。添加必要的下载偏好设置
Chrome 129版本需要额外配置几个偏好项,确保下载目录生效且不弹出下载提示:download.prompt_for_download: 设置为false,禁用下载弹窗download.directory_upgrade: 设置为true,允许Chrome升级下载目录权限- 如果是下载特定类型文件(比如PDF),还可以添加
plugins.always_open_pdf_externally避免在浏览器打开
确保ChromeDriver版本与Chrome 129匹配
WebDriverManager会自动匹配对应版本,但如果出现异常,可手动指定版本:WebDriverManager.chromedriver().driverVersion("129.0.6668.58").setup();(版本号需对应你的Chrome实际版本)
完整修正后的代码示例
public WebDriver newDriver() { // 自动匹配ChromeDriver版本(或手动指定版本) WebDriverManager.getInstance(DriverManagerType.CHROME).setup(); ChromeOptions options = new ChromeOptions(); options.addArguments("--disable-gpu"); options.addArguments("--no-sandbox"); options.addArguments("--disable-dev-shm-usage"); options.addArguments("--log-net-log"); Map<String, Object> prefs = new HashMap<>(); // 修正路径:转义反斜杠,或用正斜杠 String downloadPath = "C:\\Users\\JTomassi\\Desktop\\SSEG_Portales\\Documentos"; // 或者用正斜杠:String downloadPath = "C:/Users/JTomassi/Desktop/SSEG_Portales/Documentos"; prefs.put("download.default_directory", downloadPath); prefs.put("download.prompt_for_download", false); prefs.put("download.directory_upgrade", true); // 如果需要自动下载PDF,添加下面一行 prefs.put("plugins.always_open_pdf_externally", true); options.setExperimentalOption("prefs", prefs); return new ChromeDriver(options); }
额外注意事项
- 如果是在Linux或macOS环境,路径格式要对应调整(比如Linux用
/home/username/xxx) - 确保目标目录存在且有读写权限,Chrome不会自动创建目录
- 若仍有问题,可尝试添加
--disable-features=DownloadBubble参数,禁用Chrome 129新增的下载气泡功能,避免干扰
内容的提问来源于stack exchange,提问作者juan pablo tomassi
相关产品推荐
相关产品推荐

