2017-02-23 34 views
0

我使用PhaperomJs 2.0的CasperJS 1.1.0。我正在使用Linux服務器。 我有一個腳本,試圖運行和截圖。 此截圖適用於本地服務器或直播。 截圖的網站看起來就像這樣:casperjs截圖返回空白方塊。請告訴我可能的解決方案,以獲得字符,而不是框

https://i.stack.imgur.com/dJe4L.png 

所以,而不是實際的字母,它呈現方框。

var casper = require('casper').create({ 
    verbose: true, 
}); 
casper.options.waitTimeout = 40000; 
casper.options.viewportSize = {width: 1200, height: 768}; 
phantom.cookiesEnabled = true; 
casper.start('http://domain.com/', function() { 
    this.wait(5000, function() { 
     this.echo(this.getTitle()); 
     this.capture("screenshot.png"); 
    }); 
}); 
casper.run(function() { 
    this.exit(0); 
}); 

請告訴我我錯在哪裏。

回答

1

我想對你想要的截圖,而不是5秒硬等待的項目使用waitForSelector。考慮加入

verbose: true 
waitTimeout:20000 

哪位給你20秒鐘的等待極限,超過5秒默認更長。然後,而非目前的等待,使用類似:

this.waitForSelector('img', function() { 
    this.capture('test.png') 
} 

您可以更改IMG選擇是更具體的東西,而是在等待自己加載圖像是確保他們將是一個非常特定的方式抓獲。我們改變了超時20秒的原因是萬一他們的網站需要一點時間來加載自己的形象:)

讓我知道如果這沒有幫助,樂於跟進。我將需要該網站和您想要的圖片的例子。

編輯:可以確認這適用於我,讓我知道它是否適用於您。

var casper = require('casper').create({ 
    verbose: true, 
    logLevel: 'error', 
    pageSettings: { 
    loadImages: true, 
    loadPlugins: true, 
    userAgent: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_2) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.97 Safari/537.11' 
    }, 
    clientScripts: ['vendor/jquery.min.js', 'vendor/lodash.js'], 
    viewportSize: { 
    width: 1600, 
    height:1000 
    }, 
}); 

casper.start('http://dev.bunkerbradleycouture.com/') 

casper.then(function() { 
    this.waitForSelector('img', function() { 
    this.capture('test.png') 
    }) 
}) 

casper.run() 
+0

上面的代碼是不是爲我工作。我仍然得到方形框。 – user3335891

+0

@ user3335891告訴我你想刮的頁面,我也許能幫助更多 – jakequade

+0

我再殺這個網站dev.bunkerbradleycouture.com自動化測試。 – user3335891

相關問題