运行脚本后自动关闭PhantomJs

运行脚本后自动关闭PhantomJs,phantomjs,Phantomjs,我想从我的程序中运行PhantomJs脚本,但由于脚本可能不是我编写的,我需要确保PhantomJs在执行完成或由于任何原因(例如无效语法、超时等)失败后退出。到目前为止,我所读到的所有内容都表明,必须始终包含PhantomJs要退出的指令phantom.exit()。有没有办法在PhantomJs执行给定脚本后自动关闭它 谢谢。创建一个文件运行javascript.js: var system = require('system'); try { for (var i=1; i<s

我想从我的程序中运行PhantomJs脚本,但由于脚本可能不是我编写的,我需要确保PhantomJs在执行完成或由于任何原因(例如无效语法、超时等)失败后退出。到目前为止,我所读到的所有内容都表明,必须始终包含PhantomJs要退出的指令phantom.exit()。有没有办法在PhantomJs执行给定脚本后自动关闭它


谢谢。

创建一个文件运行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();
}
phantomjs run-javascript.js ./myscript.js
您必须为myscript.js包含一个显式路径,即/myscript.js,否则phantomjs将作为模块查找脚本

这里处理三种执行场景:

  • 成功执行,在这种情况下,finally子句中调用phantom.exit()
  • 正在运行的脚本出错,在这种情况下,require函数打印一个stacktrace并返回(不会向调用代码抛出任何错误)
  • 运行脚本时出错(例如,脚本不存在),在这种情况下,catch子句打印出堆栈跟踪,并在finally子句中调用phantom.exit()