Problemas com banco de dados do AT.. para saber mais --> clique aqui

Download de arquivo utilizando o PhantomJS



  • Pessoal, alguém sabe, ou tem alguma dica de como pode ser feito teste de download de arquivo utilizando o PhantomJS?

    Atualmente eu estou executando um teste de download de arquivo com o Chrome Driver e está funcionando, porém com o Phanthom não encontrei nada na net sobre fazer como fazer o teste de download de arquivo.

    Alguém já precisou fazer um teste desse tipo? Ou tem alguma referência?

    Obrigado.


  • MVP

    Quando se refere “teste de download de arquivo” o que está validando no chrome driver que iria validar no Phantom? Acho que a dinamica de baixar o arquivo tu poderia pesquisar pelo que o javascript permite fazer.
    A dúvida seria na validação? Na montagem do script?



  • @cassio você quer saber se o arquivo existe? se o link está certo?..



  • Não, na verdade eu não estou conseguindo fazer download do arquivo, quando executo no PhanthonJS.

    Para executar no ChormeDriver eu precisei fazer o seguinte, no momento da inicialização do driver:

    //setei em um map os keys abaixo
    chromePrefs.put("profile.default_content_settings.popups", 0);
    chromePrefs.put("download.default_directory", CAMINHO_DOWNLOAD_ARQUIVOS);
     
    //setei as preferencias
    ChromeOptions options = new ChromeOptions();
    options.setExperimentalOption("prefs", chromePrefs);
    
    DesiredCapabilities cap = DesiredCapabilities.chrome();
    cap.setCapability(ChromeOptions.CAPABILITY, options);
    
    setDriver(new ChromeDriver(cap));
    

    Feito isso, qnd eu clico no meu link de download, ao executar meu teste, o arquivo é salvo no CAMINHO_DOWNLOAD_ARQUIVOS.

    A minha dúvida é o eu precisaria fazer para conseguir salvar o arquivo, qnd executo o testes no PhanhtomJS?

    Obrigado a todos.



  • Ah, apenas complementando, o meu teste é para verificar a integridade do conteúdo do arquivo, eu comparo o MD5 do arquivo que eu fiz upload com o MD5 do arquivo q eu faço download.


  • MVP

    Hum, entendi.
    Bom, na época que usei o PhantomJS, já rolava uma conversa de que era complicado. Eu até usei o CasperJS para fazer tal procedimento …

    Dando uma pesquisada, achei esse link no StackOverflow

    using-selenium-with-python-and-phantomjs-to-download-file-to-filesystem

    A última resposta ele fala sobre o que precisaria para fazer o download. Não valei tal solução, mas pode ser um norte…
    (Ou usar o CasperJS para fazer isso, ou esquecer isso e ir beber uma cerveja…) hehhehee



  • Cassio,

    Acho que também é importante se perguntar a necessidade de fazer isso pelo WebDriver. Nem todo browser vai ter suporte a isso (como o PhantomJS) e é meio que uma gambiarra.

    Nesse link o autor descreve uma solução: http://ardesco.lazerycode.com/index.php/2012/07/how-to-download-files-with-selenium-and-why-you-shouldnt/

    Entretanto, você poderia muito bem testar isso fazendo um request pra URL de download e aí sim validar o md5 do arquivo, sem precisar testar fazendo o clique no botão em vários browsers diferentes.

    Abs



  • @stefanteixeira faz um gist de exemplo stefan :) em ruby



  • @Leonardo-Galani hahahah um dia…