私のフロントエンドのすべてのページからpng画像を生成するスクリプトを書いています。 私はUIのための角度を使用して、ファントムでページをキャプチャしています。角度の仕上げはそれをレンダリングするまでファントムスクリプトから角度アプリが完全にレンダリングされるのを待つ
ビューはので、私はキャプチャする前少しを待たなければならない時間がかかる:
var page = require('webpage').create();
page.open('http://localhost:9000/', function() {
window.setTimeout(function() {
page.render('snapshot.png');
phantom.exit();
}, 2000);
});
私はこれを達成するためのより良い方法があるかどうだろうか。
$scope.$on('$viewContentLoaded', function() {
// do something
});
そしてonCallback
とファントムと通信のための方法を見つけたので、私のようなもの記述することができます:私は、ページが完全にレンダリングされたときの角度がイベントを発することができる見つけ内の他の場所に続いて
$scope.$on('$viewContentLoaded', function() {
window.callPhantom({ hello: 'world' });
});
をファントムスクリプト:
page.onCallback = function() {
page.render('snapshot.png');
phantom.exit();
};
しかし、私はファントムスクリプトから角度$viewContentLoaded
ハンドルを注入する方法で迷ってしまいました。
evaluate
/evalueateAsyn
が移動するための方法であれば、私は知らない...
page.evaluateAsync(function() {
$scope.$on('$viewContentLoaded', function() {
window.callPhantom({ hello: 'world' });
});
});
は、たぶん私はいくつかの方法で、右$scope
にアクセスすることができました。 アイデア
私の質問は、フロントエンドのソースにテストの依存関係を混在させたくないので、ファントムスクリプトに角度コードを注入することです。 –
私が見ている@PauFracés。私はもう少し情報を更新しました - それが助けてくれることを願っています。 –
"という指示文で要素を見つけることができます。"申し訳ありませんが、これを行う方法がわかりません。 –