2016-08-11 89 views
3
var casper = require('casper').create({ 
viewportSize: { 
    width: 1920, 
    height: 1080 
}, 
verbose: true, 
logLevel: 'debug' 
}); 

var utils = require('utils'); 
casper.options.onResourceRequested = function(C, requestData, request) { 
    utils.dump(requestData.headers); 
}; 
var url = casper.cli.get('url'); 
var filename = casper.cli.get('filename'); 
var headers = casper.cli.get('storefront'); 

if (headers != null) { 
    casper.userAgent('iTunes/12.4.3 (Windows; Microsoft Windows 10.0 x64 Business Edition (Build 9200); x64) AppleWebKit/7601.6016.1000.7'); 
} 

casper.start().then(function() { 
    casper.page.customHeaders = { 
     'X-Apple-Store-Front': headers, 
     'X-Apple-Tz': '3600' 
    }; 
    casper.thenOpen(url, function() { 
     this.wait(2000, function() { 
     var fs = require('fs'); 
     fs.write('asd.html', this.getHTML(), 'wb'); 
     this.capture(filename); 
    }); 
}); 
}); 
casper.run(); 

casperjs screenshot.js --storefront="143441-1,12 ab:SwTTXLh0" --url="https://itunes.apple.com/WebObjects/MZStore.woa/wa/viewGrouping?cc=us&id=37" --filename=tv.jpgCasperJS not loading javascripts?

當試圖轉儲這個頁面,這不是給我完全的JavaScript旋轉木馬或任何東西。我真的不知道什麼原因導致加載失敗,並想知道是否有人有任何其他經驗呢?

PhantonJS版本是2.1.1。 CasperJS版本是1.1.1。

+0

您使用哪個PhantomJS版本?請註冊到'resource.error','page.error','remote.message'和'casper.page.onResourceTimeout'事件([Example](https://gist.github.com/artjomb/4cf43d16ce50d8674fdf#file -2_caspererrors-JS))。也許有錯誤。 –

+0

更新了帖子。 'Error:ITSExceptionHandler:ITSExceptionHandler:{message:「ReferenceError:Can not find variable:iTunes」,url:「https://itunes.apple.com/htmlResources/CBCB/dt-storefront-base.js」, lineNumber:「1023」}' '錯誤:ReferenceError:無法找到變量:iTunes' casperjs版本是1.1.1 –

+0

PhantomJS也是2.1.1。 –

回答

0

我面臨同樣的問題。有幾件事情在這個PhantomJS ticket檢查:

  • 嘗試輸出是卡斯帕解釋使用this.debugHTML(),看是否要加載腳本在實際的HTML(因爲怪異/舊的userAgent可以省略的HTML )
  • 您正在使用的Webkit版本
  • 嘗試通過onResourceRequestedonResourceReceived查看網絡流量,看看腳本是否實際被請求和接收。

可悲的是,所有這些在我的情況看起來不錯,但頁面仍然是空白的。希望它可以幫助別人。讓我知道如果你有什麼要檢查的其他技巧。