私はphantomjsでいくつかのテストをしようとしています...基本的に私はしたいです:
- 私のウェブサーバーでページを開く
- ページが初期化されると (すべてのページ js が読み込まれます)
- phantomjs からページ js を呼び出して結果をテストする
- ファントムjsを終了
ページが読み込まれたときにphantomjsが気付くのは難しいようです。
phantomjs を使用して、ウィンドウなどに「テスト」変数を設定し、ページ js がそれをチェックして、完了したらコールバックを呼び出すことができます。問題は、コールバックがページ コールバックにしかできないことです。そのため、ページで実行できないことは何も実行できません。
それはテスにとっては問題ないかもしれませんが、最後のステップは不可能です。
私はこれを思いついた:
page.onConsoleMessage = function(msg) {
if (msg == "__quit__") {
phantom.exit();
}
else {
console.log("page: " + msg);
}
};
page.evaluate(function () {
window.quit = function () { console.log("__quit__"); };
});
したがって、ページ コードは window.quit() を呼び出すことができ、コンソール モニターはファントムを強制終了できます。ただし、これは少しハッキーなようです。誰かがそれを行うためのより良い方法を持っていますか?