該javascript位於我打開的同一網站上。PhantomJS不從相同的URL加載.js
實施例:http://test.site.com
JS =>http://test.site.com/cache/6343019445fb7d95bd2bd09c5bbfb002.js
我還包括從jQuery的和googleapis出現加載!我嘗試從onResourceError
等事件中獲取一些數據,但沒有顯示出來。
這是我的測試代碼:
var page = require('webpage').create();
page.viewportSize = {
width: 1366,
height: 720
};
page.settings.loadImages = true;
page.settings.localToRemoteUrlAccessEnabled = true;
page.settings.javascriptEnabled = true;
page.settings.webSecurityEnabled = false;
page.settings.XSSAuditingEnabled = false;
var uri = 'http://test.site.com';
page.onConsoleMessage = function(msg, lineNum, sourceId) {
console.log('CONSOLE: ' + msg + ' (from line #' + lineNum + ' in "' + sourceId + '")');
};
page.onResourceError = function(resourceError) {
console.log('Unable to load resource (#' + resourceError.id + 'URL:' + resourceError.url + ')');
console.log('Error code: ' + resourceError.errorCode + '. Description: ' + resourceError.errorString);
};
page.onResourceTimeout = function(request) {
console.log('Response (#' + request.id + '): ' + JSON.stringify(request));
};
page.onError = function(msg, trace) {
var msgStack = ['ERROR: ' + msg];
if (trace && trace.length) {
msgStack.push('TRACE:');
trace.forEach(function(t) {
msgStack.push(' -> ' + t.file + ': ' + t.line + (t.function ? ' (in function "' + t.function +'")' : ''));
});
}
console.error(msgStack.join('\n'));
};
page.onLoadFinished = function(){
setTimeout(function(){
console.log(page.content); // <script> is there
console.log('render');
page.render('test.png');
phantom.exit();
}, 4000);
};
page.open(uri, function() {
console.log('loaded');
});
我看除了render
,loaded
和頁面內容沒有其他控制檯消息。 我在做什麼錯?
爲什麼你認爲.js沒有加載?在代碼中沒有檢查。 – Vaviloff
我在.js文件中添加了一些消息,它們不會通過'onConsoleMessage'顯示。此外,該js應該做文檔的可見的變化,他們應該反映在屏幕截圖中,但它們不是 –
我看到'onResourceReceived'事件中的js文件,顯然它被下載,但由於某種原因它沒有執行? ! –