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

ChromeDriver默认下载目录修改无效问题求助

解决ChromeDriver下载目录不生效的问题

针对你遇到的修改download.default_directory后,文件仍保存到默认Downloads文件夹的问题,结合你的代码和环境,下面是具体的排查和解决步骤:

问题根源分析

  1. 相对路径不可靠:你使用的./downloads是相对路径,Katalon Studio的工作目录可能和你预期的不一致,导致Chrome无法识别正确的目标路径。
  2. Windows路径格式问题:Windows系统的路径分隔符是反斜杠\,但Chrome的偏好设置要求使用正斜杠/或者转义后的反斜杠\\,直接用getPath()返回的路径可能无法被正确解析。
  3. PDF预览干扰:Chrome默认会内置预览PDF文件,不会触发下载流程,自然不会使用你设置的下载目录。

修复后的代码示例

修改WebDriverUtils.groovy

package me.mikewarren.myCaseScraper.utils

import org.openqa.selenium.WebDriver
import org.openqa.selenium.chrome.ChromeDriver
import org.openqa.selenium.chrome.ChromeOptions

import com.kms.katalon.core.webui.driver.DriverFactory
import com.kms.katalon.core.configuration.RunConfiguration

public final class WebDriverUtils {
    public static void SetUpDriver() {
        // 获取项目根目录的绝对路径,拼接下载目录
        String projectDir = RunConfiguration.getProjectDir()
        File downloadDir = new File(projectDir + "/downloads")
        if (!downloadDir.exists()) {
            downloadDir.mkdirs();
        }
        
        // 转换为Chrome支持的路径格式(正斜杠)
        String chromeDownloadPath = downloadDir.getAbsolutePath().replace("\\", "/")

        System.setProperty('webdriver.chrome.driver', DriverFactory.getChromeDriverPath())

        ChromeOptions options = new ChromeOptions();
        options.setExperimentalOption('prefs', [
            'download.prompt_for_download' : false, // 改用布尔值而非字符串,避免类型不匹配
            'download.default_directory' : chromeDownloadPath,
            'plugins.always_open_pdf_externally' : true, // 强制PDF直接下载,不预览
            'download.directory_upgrade' : true // 允许Chrome优先使用自定义下载目录
        ]);

        WebDriver driver = new ChromeDriver(options);
        driver.manage().window().maximize();

        DriverFactory.changeWebDriver(driver);
    }

    public static void CloseDriver() {
        DriverFactory.closeWebDriver();
    }
}

关键修改说明

  • 改用绝对路径:通过RunConfiguration.getProjectDir()获取Katalon项目根目录,确保下载目录路径明确无歧义。
  • 修正路径格式:将Windows系统的反斜杠替换为正斜杠,适配Chrome偏好设置的要求。
  • 禁用PDF预览:添加plugins.always_open_pdf_externally: true,强制Chrome直接下载PDF文件,触发下载目录逻辑。
  • 修复参数类型:将原代码中字符串类型的'false'改为布尔值false,确保Chrome能正确识别配置项。
  • 启用目录升级:download.directory_upgrade: true确保Chrome优先使用自定义目录,而非保留旧的默认路径。

额外注意事项

  • 启用NewTestListener.groovy中AfterTestCase方法的WebDriverUtils.CloseDriver(),避免Driver实例残留导致的配置冲突。
  • 运行测试前,清理Chrome旧下载缓存或重启Katalon Studio,确保新配置生效。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.21 12:43:13