我正在使用Selenium-webdriver + java来自动化我的应用程序。
有没有办法更改默认"下载位置"浏览器通过Webdriver /所需功能/任何其他方法?
答案 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
尝试以下代码块:
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>