gpt4 book ai didi

node.js - 如何使用 nightjs 正确停止 phantomjs 实例

转载 作者:太空宇宙 更新时间:2023-11-04 00:48:09 25 4
gpt4 key购买 nike

我想使用 Nightmare 获取我的网络应用程序的屏幕截图。当运行代码时没有错误并且退出干净时,不会留下任何 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();
});

但是,当出现诸如 web 未运行之类的错误时,选择器不存在。 phantomjs 的实例保持未退出状态。

$ 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) 每隔 250 毫秒继续循环检查元素是否存在。您可以向开发人员报告此情况,以添加传递附加参数以在特定超时后停止检查以正常退出。

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

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

关于node.js - 如何使用 nightjs 正确停止 phantomjs 实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33720499/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com