如何用nightmarejs正确地停止phantomjs实例
我想用恶梦获取我的networking应用程序的屏幕截图。 运行代码时没有错误,退出是干净的,没有phantomjs实例被留下。
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)
来执行检查。