У меня на вашем веб-сайте есть сценарий аналитики, который запускает события через 1 секунду, 5 секунд и 1 минуту. Я хочу проверить это с помощью Phantomjs, но я не могу заставить их выполнить. Начальные загрузки javascript, но последующие события времени не срабатывают. Сценарий аналитики размещается в домене поставщика аналитики, и я только ссылаюсь на него на своей странице для сбора данных аналитики. Он не работает с ожиданием или window.setTimeout()
Phantomjs и задержанный javascript
Кто-нибудь есть идеи, как это сделать?
редактировать: Это мой phantomjs код
var page = require('webpage').create();
var myArray = ['Mozilla/5.0 (Windows NT 6.2; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1667.0 Safari/537.36', 'Mozilla/5.0 (Windows NT 6.2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1464.0 Safari/537.36', 'Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.1.12) Gecko/20080219 Firefox/2.0.0.12 Navigator/9.0.0.6','Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; WOW64; Trident/6.0)','Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0; SLCC2; Media Center PC 6.0; InfoPath.3; MS-RTC LM 8; Zune 4.7)','Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0; .NET CLR 2.0.50727; SLCC2; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; Zune 4.0; Tablet PC 2.0; InfoPath.3; .NET4.0C; .NET4.0E)'];
page.settings.userAgent = myArray[Math.floor(Math.random() * myArray.length)];
page.viewportSize = { width: 1920, height: 1080 };
var url = 'myurl.com/mypage.html';
page.open(url, function() {
window.setTimeout(function(){
page.render('');
phantom.exit();
},5000);
});
Таймауты прекрасно работают в фантом - вы уверен, что это не проблема с вашим скриптом аналитики? – jraede
@jraede, когда я открываю ту же страницу в браузерах, например firefox или chrome, он отлично работает! – lolcat
«Вы уверены, что это не проблема с вашим скриптом аналитики?» смысл, может быть, он не поддерживает Phantom по какой-то причине – jraede