【发布时间】:2014-05-19 21:54:30
【问题描述】:
我正在使用 Selenium-webdriver + java 来自动化我的应用程序。
有什么方法可以通过 Webdriver/所需功能/任何其他方法更改浏览器的默认“下载位置”?
【问题讨论】:
标签: java selenium-webdriver webdriver
我正在使用 Selenium-webdriver + java 来自动化我的应用程序。
有什么方法可以通过 Webdriver/所需功能/任何其他方法更改浏览器的默认“下载位置”?
【问题讨论】:
标签: java selenium-webdriver webdriver
通过将browser.download.folderList 的首选项值设置为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 和一些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>
【讨论】: