Download files in Java, Selenium using ChromeDriver and headless mode Download files in Java, Selenium using ChromeDriver and headless mode google-chrome google-chrome

Download files in Java, Selenium using ChromeDriver and headless mode


In Java use like this :

System.setProperty("webdriver.chrome.driver", "/usr/local/bin/chromedriver");         ChromeOptions options = new ChromeOptions();                options.addArguments("--test-type");                options.addArguments("--headless");                options.addArguments("--disable-extensions"); //to disable browser extension popup                ChromeDriverService driverService = ChromeDriverService.createDefaultService();                ChromeDriver driver = new ChromeDriver(driverService, options);                Map<String, Object> commandParams = new HashMap<>();                commandParams.put("cmd", "Page.setDownloadBehavior");                Map<String, String> params = new HashMap<>();                params.put("behavior", "allow");                params.put("downloadPath", "//home//vaibhav//Desktop");                commandParams.put("params", params);                ObjectMapper objectMapper = new ObjectMapper();                HttpClient httpClient = HttpClientBuilder.create().build();                String command = objectMapper.writeValueAsString(commandParams);                String u = driverService.getUrl().toString() + "/session/" + driver.getSessionId() + "/chromium/send_command";                HttpPost request = new HttpPost(u);                request.addHeader("content-type", "application/json");                request.setEntity(new StringEntity(command));                httpClient.execute(request);        driver.get("http://www.seleniumhq.org/download/");        driver.findElement(By.linkText("32 bit Windows IE")).click();


As per official release page of chrome driver, a fix has been introduced for this issue. Any chrome driver version greater than 77 will be able to download the file in headless mode.

options.addArguments("--headless");