MyLuk
(My Luk)
02.Ноябрь.2017 10:08:32
#1
Подскажите, пожалуйста, как можно изменить стандартную директорию, куда скачиваются файлы, на свою заданную? Нашел только как это делается при создании драйвера стандартным способом java - How to set default download directory in selenium Chrome Capabilities? - Stack Overflow . Можно ли как-то это сделать проще с использованием selenide или ChromeDriverManager, использую следующий код для инициализации драйвера
ChromeDriverManager.getInstance().setup();
Configuration.browser = "chrome";
BabyRoot
(Vasily)
02.Ноябрь.2017 10:33:38
#2
Для хрома надо настройку драйверу передать
HashMap<String, Object> chromePrefs = new HashMap<String, Object>();
chromePrefs.put("download.default_directory", "lalalal");
chromePrefs.put("profile.default_content_settings.popups", 0);
chromePrefs.put("download.directory_upgrade", true);
ChromeOptions options = new ChromeOptions();
options.setExperimentalOption("prefs", chromePrefs);
2 лайка
MyLuk
(My Luk)
02.Ноябрь.2017 12:26:30
#3
А как эту настройку в драйвер передать, если драйвер так объявлеется?
ChromeDriverManager.getInstance().setup();
Configuration.browser = "chrome";
Попробовал так
HashMap<String, Object> chromePrefs = new HashMap<String, Object>();
chromePrefs.put("download.default_directory", /home/michael/Documents");
chromePrefs.put("profile.default_content_settings.popups", 0);
chromePrefs.put("download.directory_upgrade", true);
ChromeOptions options = new ChromeOptions();
options.setExperimentalOption("prefs", chromePrefs);
ChromeDriverManager.getInstance().setup();
Configuration.browser = "chrome";
Ничего не изменилось, файлы также скачиваются в Downloads
В теме java - How to set default download directory in selenium Chrome Capabilities? - Stack Overflow передают настройку в сам драйвер.
String downloadFilepath = "/path/to/download";
HashMap<String, Object> chromePrefs = new HashMap<String, Object>();
chromePrefs.put("profile.default_content_settings.popups", 0);
chromePrefs.put("download.default_directory", downloadFilepath);
ChromeOptions options = new ChromeOptions();
options.setExperimentalOption("prefs", chromePrefs);
DesiredCapabilities cap = DesiredCapabilities.chrome();
cap.setCapability(CapabilityType.ACCEPT_SSL_CERTS, true);
cap.setCapability(ChromeOptions.CAPABILITY, options);
WebDriver driver = new ChromeDriver(cap);
А при таком объявлении как у меня не могу понять как передавать.
BabyRoot
(Vasily)
02.Ноябрь.2017 12:49:57
#4
Это только говорит что вы хотите запустить хром.
Раз Селенид, то что-то типа этого:
import com.codeborne.selenide.WebDriverRunner;
WebDriverRunner.setWebDriver(new ChromeDriver(options));
2 лайка
MyLuk
(My Luk)
02.Ноябрь.2017 13:03:24
#5
Спасибо большое, так заработало
HashMap<String, Object> chromePrefs = new HashMap<String, Object>();
chromePrefs.put("download.default_directory", /home/michael/Documents");
chromePrefs.put("profile.default_content_settings.popups", 0);
chromePrefs.put("download.directory_upgrade", true);
ChromeOptions options = new ChromeOptions();
options.setExperimentalOption("prefs", chromePrefs);
ChromeDriverManager.getInstance().setup();
Configuration.browser = "chrome";
WebDriverRunner.setWebDriver(new ChromeDriver(options));