2016-02-19 47 views

回答

0

儘管這並不直接回答你的問題,here是一個鏈接一個關於「如何使用硒下載文件以及爲什麼不應該」的優秀博客。作者討論了不同的用例,並提供了一個後門解決方案來在Java中執行此操作。文章提到的最關鍵的問題是

「你打算怎麼處理這個下載的文件?

「你想確保從服務器獲得200 OK嗎?」

「你想驗證內容嗎?」

顯然大多數人會對「200 OK驗證」說「是」,如果要驗證讓PDF文件的內容,那麼它在硒的範圍之外反正。 article提供了Java解決方案來檢查您是否從服務器獲得了200 OK。由於您使用的是量角器,我將提供一個nodejs解決方案。

var request = require('request'); 
var fileDownloadElement = element(by.css('#download')); 
fileDownloadElement.getAttribute('href').then(function(url) { 
    request(url,function(error, response, body){ 
     if(error) { 
      throw new Error('Error downloading file', error); 
     } 
     if(response.statusCode !== 200) { 
      throw new Error('Server threw non 200 OK status ->', response.statusCode); 
     } 
     if(!body) { 
      throw new Error('Server did not respond with any data'); 
     } else { 
      //write body to a file if you want to do anything with it 
     } 
    }); 
}); 

我用request客戶在這裏,你可以使用它或任何其他類似的客戶端。

聲明:我沒有測試過這個代碼,但希望你明白這個主意。

相關問題