#java #selenium #selenium-chromedriver
Вопрос:
Мне нужно загрузить файлы XLSX с помощью Java Selenium в chrome, но я не могу выбрать папку для загрузки файлов. Я перепробовал все другие альтернативы, которые я нашел здесь, но из того, что я заметил, все остальные уже устарели. Вот мой код:
String downloadFilepath = "D:\down\";
HashMap<String, Object> chromePrefs = new HashMap<String, Object>();
chromePrefs.put("profile.default_content_settings.popups", 0);
chromePrefs.put("prompt_for_download", false);
chromePrefs.put("directory_upgrade", true);
chromePrefs.put("download.default_directory", downloadFilepath);
ChromeOptions options = new ChromeOptions();
options.setExperimentalOption("prefs", chromePrefs);
options.addArguments("--disable-notifications");
DesiredCapabilities cap = DesiredCapabilities.chrome();
cap.setCapability(CapabilityType.ACCEPT_SSL_CERTS, true);
cap.setCapability(ChromeOptions.CAPABILITY, options);
System.setProperty("webdriver.chrome.driver", "C:\chromedriver.exe");
driver = new ChromeDriver(options);
Комментарии:
1. Я использую: prefs.put(«каталог загрузки.по умолчанию», каталог загрузки); Другие параметры не требуются. (Убедитесь, что папка существует и что у вас есть соответствующие разрешения… Я рекомендую папку в папке текущего пользователя.)
2. К сожалению, для меня это не сработало. Даже когда я указываю папку проекта или даже папку внутри стандартной папки Windows (загрузки). Я исключил все остальные варианты и оставил только тот, о котором вы упомянули, но он не работает для меня.
Ответ №1:
Мне удалось решить эту проблему. Я скачал последнюю стабильную версию chromedriver, вышедшую в июле (моя была с июня), и поместил код ниже.
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);
WebDriver driver = new ChromeDriver(options);