Java WebDriver-是否仍要更改默认下载位置?

Java WebDriver-是否仍要更改默认下载位置?,java,selenium-webdriver,webdriver,Java,Selenium Webdriver,Webdriver,我正在使用SeleniumWebDriver+java来自动化我的应用程序 是否有任何方法可以通过Webdriver/所需功能/任何其他方法更改浏览器的默认“下载位置”?可以通过将浏览器的首选项值设置为2将下载位置更改为自定义下载路径。下载。文件夹列表如下所示: FirefoxProfile profile = new FirefoxProfile(); profile.setPreference("browser.download.folderList", 2); profile.setPre

我正在使用SeleniumWebDriver+java来自动化我的应用程序


是否有任何方法可以通过Webdriver/所需功能/任何其他方法更改浏览器的默认“下载位置”?

可以通过将
浏览器的首选项值设置为
2
将下载位置更改为自定义下载路径。下载。文件夹列表
如下所示:

FirefoxProfile profile = new FirefoxProfile();
profile.setPreference("browser.download.folderList", 2);
profile.setPreference("browser.download.dir", "directory_path_to_save_file");
通过这样做,您可以在创建概要文件时下载您提到的目录中的文件

然后,通过传递
profile
,创建一个浏览器实例:

WebDriver driver = new FirefoxDriver(profile);

是的,有一个干净的方法。您可以使用
webdriverManager
设置浏览器,例如chrome,然后使用
ChromeOptions
覆盖chrome的默认下载位置,并提供一些
所需的功能

请尝试以下代码块:

    WebDriverManager.chromedriver().setup();   //This sets up chrome driver
    String downloadDir = System.getProperty("user.dir");
    HashMap<String, Object> chromePrefs = new HashMap<String, Object>();
    chromePrefs.put("download.default_directory", downloadDir);
    ChromeOptions options = new ChromeOptions();
    options.setExperimentalOption("prefs", chromePrefs);
    DesiredCapabilities cap = DesiredCapabilities.chrome();
    cap.setCapability(ChromeOptions.CAPABILITY, options);
    driver = new ChromeDriver(cap);
WebDriverManager.chromedriver().setup()//这将设置chrome驱动程序
String downloadDir=System.getProperty(“user.dir”);
HashMap chromePrefs=新HashMap();
chromePrefs.put(“download.default\u目录”,downloadDir);
ChromeOptions选项=新的ChromeOptions();
选项。设置实验选项(“prefs”,chromePrefs);
DesiredCapabilities=DesiredCapabilities.chrome();
上限设置能力(色度选项、能力、选项);
驱动器=新的镀铬驱动器(cap);
要使用WebDriverManager,必须将此依赖项添加到maven项目中(还有一个gradle版本):


io.github.bonigarcia
webdrivermanager
3.6.2
        <dependency>
            <groupId>io.github.bonigarcia</groupId>
            <artifactId>webdrivermanager</artifactId>
            <version>3.6.2</version>
        </dependency>