3

プログラムからPhantomJsスクリプトを実行したいのですが、スクリプトが作成されていない可能性があるため、実行が完了した後、または何らかの理由(無効な構文、タイムアウトなど)で失敗した後にPhantomJsが終了することを確認する必要があります。これまでのところ、PhantomJを終了するには、常にphantom.exit()命令を含める必要があると書かれています。特定のスクリプトを実行した後にPhantomJを自動的に閉じる方法はありますか?

ありがとう。

4

1 に答える 1

2

ファイルrun-javascript.js を作成します。

var system = require('system');

try {
  for (var i=1; i<system.args.length; i++) {
    var scriptFileName = system.args[i];
    console.log("Running " + scriptFileName + " ...");
    require(scriptFileName);
  }
}
catch(error) {
  console.log(error);
  console.log(error.stack);
}
finally {
  phantom.exit();
}

次に、ファイルmyscript.jsを実行します。

phantomjs run-javascript.js ./myscript.js

myscript.jsの明示的なパス、つまり./myscript.jsを含める必要があります。そうしないと、 phantomjsがスクリプトをモジュールとして検索します。

ここで処理される実行シナリオは 3 つあります。

  1. 実行の成功。この場合、phantom.exit()がfinally句で呼び出されます。
  2. 実行中のスクリプトのエラー。この場合、require関数はスタック トレースを出力して戻ります (呼び出し元のコードにエラーをスローすることはありません)。
  3. スクリプトの実行中にエラーが発生しました (スクリプトが存在しないなど)。この場合、catch句によってスタックトレースが出力され、finally 句でphantom.exit ()が呼び出されます。
于 2013-08-26T22:24:42.293 に答える