Agile Testers TechTalks | Test War Stories - Andreia Gaita @ Tech Lead do GitHub. Saiba mais aqui

Chrome Headless - Download de arquivos



  • 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);
            }


  • Olá @ronunes, qual a necessidade de você fazer o download desses documentos? você vai validar o conteudo desses documentos ou só precisa saber se o link está correto e não vai dar em uma pagina 404?

    Se for isso…vc pode fazer um curl ou wget no documento e ver se ele não está vazio… :)



  • @leonardo-galani said in Chrome Headless - Download de arquivos:

    Olá @ronunes, qual a necessidade de você fazer o download desses documentos? você vai validar o conteudo desses documentos ou só precisa saber se o link está correto e não vai dar em uma pagina 404?

    Se for isso…vc pode fazer um curl ou wget no documento e ver se ele não está vazio… :)

    Opa, não há um link para o nosso documento. Ele é gerado com base em um XML que está em um banco de dados. Nesse caso não tenho como fazer um curl ou wget no documento :/



  • Tá… existe um link certo? esse link vai disparar uma solicitação que o retorno é um PDF correto? Não da pra fazer curl nesse link?