Przygotowałem scenariusz do tworzenia webshotów naszej aplikacji. To działa doskonale i wszystko jest w porządku Dopóki nie napotkać obraz ze złamanym URL:timeout strony phantomJS
"<img src='http://testserver.our.intranet/fetch/image/373e8fd2339696e2feeb680b765d626e' />"
udało mi się przełamać skrypt po 6 sekund za pomocą poniższego, zanim to właśnie pętli zawsze.
Ale czy to możliwe, aby zignorować żądanie sieciowe (AKA
wziąć obraz z DOM
), a następnie przystąpić do tworzenia kciuka bez obrazu (lub z wstrzykiwany obrazu zaginionego obrazu!)
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);
}
}
To jest doskonałe pytanie. Mamy podobny problem, z tym że nieco trudniej go rozwiązać. Mamy stronę klienta, która ma niestandardowy javascript, który jest źle napisany. Wydaje się, że zawiesił się webkit. Mamy ogromny wachlarz stron internetowych, które chcemy przetestować, ale nie działa, jeśli niestandardowy js klienta zrywa z webkitem. Tim obj jest dobrym rozwiązaniem, ale zastanawiam się, czy ktoś ma rozwiązanie diff. ...? – cliffbarnes