私は私たちのアプリのwebshotsを作成するためのスクリプトを設定しました。 それは完璧に動作し、私は壊れたURLを持つ画像に遭遇するまで、すべての罰金です:私はそれだけで永遠にループした前に、以下の使用して6秒後にスクリプトを壊すために管理しているphantomJSのウェブページのタイムアウト
"<img src='http://testserver.our.intranet/fetch/image/373e8fd2339696e2feeb680b765d626e' />"
。
しかし、それは(AKA
DOM
のうち、画像を撮る)ネットワーク要求を無視し、その後、画像なしで親指を作成するために進めることが可能である(または注入された画像不足しているイメージで!)
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);
}
}
これは素晴らしい質問です。私たちは同様の問題を抱えていますが、解決するのが少し難しいという点が異なります。我々は、あまり書き込まれていないカスタムJavaScriptを持っているクライアントのWebサイトを持っています。 Webkitがハングしているようです。私たちはテストしたい巨大なWebサイトを持っていますが、クライアントのカスタムjがWebkitを壊している場合は機能しません。タイマobjは良い解決策ですが、誰かが差分解決策を持っているのだろうかと思います。 ...? – cliffbarnes