2016-04-13 18 views
0

javascript'i açtığım aynı sitede bulunuyor.PhantomJS aynı adı taşıyan .js

Örnek: http://test.site.com

js =>http://test.site.com/cache/6343019445fb7d95bd2bd09c5bbfb002.js

Ben de googleapis gelen jQuery dahil ediyorum ve bu yük görünür! onResourceError gibi etkinliklerden veri almayı denedim ama hiçbir şey görünmüyor. Ben render, loaded ve sayfa içeriği dışında başka hiçbir konsol mesajlarını görmek

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'); 
}); 

:

Bu benim test kodudur. Neyi yanlış yapıyorum?

+0

Neden ss yüklü değil? Kodda bunun için çek bulunmamaktadır. – Vaviloff

+0

.js dosyasında bazı mesajlar ekledim ve 'onConsoleMessage 'ile gösterilmiyor. Ayrıca js, ekran görüntüsünde yansıtmaları gereken belgede gözle görülür değişiklikler yapmalıdır, ancak –

+0

değiller, "onResourceReceived" olayında js dosyasını görüyorum, bu yüzden görünüşe göre indiriliyor ancak bir nedenden dolayı yürütülemiyor? ! –

cevap

-1

Sayfayı değerlendirmek zorundasınız. Bunun böyle bir şey olduğuna inanıyorum.

page.evaluate(function() { 
    // This is after page is evaluated and javascript is run 
}); 

Değerlendirmenin, JS işlevlerine veya değişkenlerine erişim sağladığını unutmayın, yalnızca sizin için çalışır. Eğer JStom'dan Phantom'a erişmeniz gerekiyorsa, page.evaluate'un içinde JavaScript kodunu koymak isteyebilirsiniz, böylece console.log'u veya ihtiyacınız olduğu şekilde işlem yapabilirsiniz.

+0

Bu sadece sayfa bağlamında bir işlev çalıştırmak için yararlıdır.Ben de konsol.log çalışıp çalışmadığını test etmek için denedim ve benim betik işlevleri var ve onlar değil. Ama ben window.jQuery 'görüyorum ... –

+0

Ben phantom JS çok paslı değilim, ama değerlendirme JS işlevleri veya değişkenlere erişim vermez inanıyorum, sadece Bunu yapmanız için yapmanız gerekiyorsa, javascript kodunu 'page.evaluate' içine kendiniz koymak isteyeceksiniz. – Goose

İlgili konular