我使用PhantomJS 2.1.1拍攝手機屏幕截圖,但其中一些屏幕並未正確顯示,因爲頁面未完全呈現。我試圖使用onLoadFinished事件,但它不起作用。PhantomJS onLoadFinished無法正常工作
這裏是我的代碼:
var system = require('system');
var args = system.args;
var page = require('webpage').create();
page.open(args[1]);
page.onLoadFinished = function (status) {
page.viewportSize = { width: 414, height: 736 };
page.clipRect = { top: 0, left: 0, width: 414, height: 736 };
page.render(args[2]);
console.log(args[2]);
phantom.exit();
});
它只是掛起並沒有返回。我通過使用2秒硬編碼延遲來解決這個問題,但這並不好,因爲我不知道每個站點都會在2秒內加載。
這是硬編碼延遲即時通訊使用:
page.open(args[1], function() {
page.viewportSize = { width: 414, height: 736 };
page.clipRect = { top: 0, left: 0, width: 414, height: 736 };
setTimeout(function() {
page.render(args[2]);
console.log(args[2]);
phantom.exit();
}, 2000);
});
如何獲得的代碼與適當的負載情況下工作?
有沒有錯誤?使用[page.onError](http://phantomjs.org/api/webpage/handler/on-error.html)回調找出 – Vaviloff