Uygulamamızın web görüntülerini oluşturmak için bir komut dosyası hazırladım. Mükemmel çalışır ve Ben kırık URL'ye sahip bir görüntü karşılaşmak kadar tüm gayet: Ben sadece sonsuza döngü önce, aşağıda kullanılarak 6 saniye sonra senaryoyu kırmak başarmışphantomJS webpage zaman aşımı
"<img src='http://testserver.our.intranet/fetch/image/373e8fd2339696e2feeb680b765d626e' />"
.
Fakat, (AKA
DOM
dışarı görüntüsünü almak) ağ isteğini görmezden sonra, görüntü olmadan başparmak oluşturmaya devam etmek mümkündür (veya bir enjekte resim eksik görüntüyle!)
var page = require('webpage').create(),
system = require('system'),
address, output, size;
if (system.args.length < 3 || system.args.length > 5) {
phantom.exit(1);
} else {
address = system.args[1];
output = system.args[2];
page.viewportSize = { width: 640, height: 640 };
page.zoomFactor = 0.75;
page.clipRect = { top: 10, left: 0, width: 640, height: 490 };
try{
page.open(address, function (status) {
if (status !== 'success') {
console.log('Unable to load the address!');
phantom.exit();
} else {
window.setTimeout(function() {
page.render(output);
phantom.exit();
}, 200);
}
});
} finally{
setTimeout(function() {
console.log("Max execution time " + Math.round(6000) + " seconds exceeded");
phantom.exit(1);
}, 6000);
}
}
Bu mükemmel bir sorudur. Benzer bir problemimiz var, ancak çözülmesi biraz daha zor. Müşterinin web sitesinin, kötü yazılmış özel javascript'i var. Webkit'in asılmasına neden oluyor gibi görünüyor. Test etmek istediğimiz çok sayıda web sitemiz var, ancak bir müşterinin özel js'si webkit'i kırıyorsa işe yaramıyor. Zamanlayıcı obj iyi bir çözümdür, ancak birisinin bir diff çözümü olup olmadığını merak ediyorum. ... – cliffbarnes