У меня есть веб-приложение, созданное с помощью AngularJS. Я использую мониторинг сети phantomjs для перехвата всех запросов, инициированных с веб-сайта при загрузке страницы. Я получаю следующий список запросов:
"https:.../assets/application-bf61473a35661d960c262995b314b0af.css"
"https:.../assets/lib/modernizr-c569e351684c78953f5f6298b4e1e485.js"
"https:.../assets/application-04936fc61dbebda777c3f816afa39726.js"
"https://www.google-analytics.com/analytics.js"
"https://ssl.google-analytics.com/ga.js"
"https:.../assets/app_install_page_header-a4b182016c1769bad626d1409b6c95f1.png"
"https:.../assets/app_install_page_landing_text-14a162dca43a9a84b9fe0a7a77472fad.png"
Проблема в том, что в списке нет динамических запросов, таких как:
запрос с данными для google analytics;
запрос изображений, запрашиваемых из бэкенда;
- ...
Я использовал метод waitFor, чтобы дать фантомам время ждать отложенных запросов, но это не помогло.
Я использовал эту документацию http://phantomjs.org/network-monitoring.html.
Код:
var page = require('webpage').create();
page.onConsoleMessage = function(msg, lineNum, sourceId) {
console.log('CONSOLE: ' + msg + ' (from line #' + lineNum + ' in "' + sourceId + '")');
};
page.onError = function(msg, trace) {
var msgStack = ['ERROR: ' + msg + trace];
console.error(msgStack.join('\n'));
};
page.onResourceRequested = function(request) {
url = request.url
console.log(url);
};
page.onRecourseReceived = function(response) {
console.log('received: ' + JSON.stringify(response, undefined, 4));
};
page.onLoadFinished = function() {
page.render("on_finish.png");
};
page.open(address, function(status){
setTimeout(function(){
phantom.exit();
}, 15000);
});
waitFor
полезен, когда вы ждете чего-то определенного. Чего вы ждете (покажите код). В вашем случаеsetTimeout(function(){phantom.exit();}, 5000);
должно быть достаточно. - person Artjom B.   schedule 28.10.2014onConsoleMessage
иonError
событий. Возможно есть ошибки. - person Artjom B.   schedule 28.10.2014--ssl-protocol=tlsv1
? - person Artjom B.   schedule 28.10.2014--ssl-protocol=tlsv1
? Начну писать ответ. - person Artjom B.   schedule 28.10.2014