WebDriver - 无论如何要更改默认下载位置?

时间:2014-05-19 21:54:30

标签: java selenium-webdriver webdriver

我正在使用Selenium-webdriver + java来自动化我的应用程序。

有没有办法更改默认"下载位置"浏览器通过Webdriver /所需功能/任何其他方法?

2 个答案:

答案 0 :(得分:3)

通过将2的偏好设置为browser.download.folderList,可以将下载位置更改为自定义下载路径,如下所示:

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

答案 1 :(得分:0)

是的,有一种干净的方法可以做到这一点。您可以使用webdriverManager来设置浏览器(例如chrome),然后使用ChromeOptions和某些DesiredCapabilities

覆盖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,必须将此依赖项添加到您的maven项目(也有gradle版本):

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