Pessoal,
Estou implementando no projeto da minha empresa a execução dos testes automatizados com o ChromeDriver Headless. Porém, algum dos testes que temos realizam download de documentos (XML, PDF) e após diversas pesquisas, todas as formas de configurações que tentei não foram eficazes.
Alguém executa seus testes dessa forma e possuí download de documentos?
OBS: Se eu executar com os parâmetros de download que tenho agora, sem o modo headless, os testes são executados com sucesso.
Basicamente, meu método ficou da seguinte forma até o momento.
@Override
protected ChromeDriver createChromeDriver() {
final ChromeOptions options = new ChromeOptions();
options.addArguments("headless");
options.addArguments("window-size=1280x800");
options.setExperimentalOption("excludeSwitches", Arrays.asList("test-type", "--ignore-certificate-errors"));
options.addArguments("--no-sandbox");
options.addArguments("--dns-prefetch-disable");
options.addArguments("--disable-infobars");
Map<String, Object> preferences = new HashMap<String, Object>();
preferences.put("download.default_directory", AssistantFile.getOrCreateDownloadPath());
preferences.put("download.prompt_for_download", false);
preferences.put("download.directory_upgrade", true);
preferences.put("safebrowsing.enabled", true);
preferences.put("profile.default_content_settings.popups", 0);
preferences.put("browser.set_download_behavior", "{ behavior: 'allow' , downloadPath: '"+ AssistantFile.getOrCreateDownloadPath() +"'}");
final DesiredCapabilities capabilities = DesiredCapabilities.chrome();
capabilities.setCapability(ChromeOptions.CAPABILITY, options);
capabilities.setCapability(CapabilityType.ACCEPT_SSL_CERTS, true);
options.setExperimentalOption("prefs", preferences);
return new ChromeDriver(options);
}