如何用nightmarejs正确地停止phantomjs实例

我想用恶梦获取我的networking应用程序的屏幕截图。 运行代码时没有错误,退出是干净的,没有pha​​ntomjs实例被留下。

var Nightmare = require('nightmare'); var Screenshot = require('nightmare-screenshot'); var nightmare = new Nightmare(); var url = process.argv[2]; var url = process.argv[3]; nightmare .goto(url) .wait('#selector') .use(Screenshot.screenshotSelector(path, '#selector')) .run(function (err, nightmare) { if (err) console.log('Error'); else console.log('Done.'); nightmare.teardownInstance(); nightmare.end(); }); 

但是,当有一些错误,如networking没有运行,select器不存在。 幻影的实例仍然未被使用。

 $ ps -ax | grep phantom 6065 ttys004 0:00.00 grep phantom 6050 ttys005 0:02.87 phantomjs --load-images=true --ignore-ssl-errors=true --ssl-protocol=any --web-security=true /.../node_modules/phantom/shim.js 13201 127.0.0.1 

即使有任何错误,我怎么能正确地退出它的实例?

目前, .wait(elem)不断循环检查元素是否存在或不是每.wait(elem) 。 您可以向开发人员报告,以添加传递附加参数,以便在特定超时后停止检查以正常退出。

或者,您可以通过手动检查某个超时的元素是否存在,然后退出该过程来解决问题。

您可以使用wait(fn)来执行检查。