Node.js 是否可以使用其contextId关闭木偶演员浏览器?

Node.js 是否可以使用其contextId关闭木偶演员浏览器?,node.js,puppeteer,Node.js,Puppeteer,这是对我之前问过的一个问题的更新,但我问这个问题时没有直接思考(我对我的解决方案采取了非常倒退的方法)。我目前正在与Puppeter合作,我正在尝试在特定任务和Puppeter浏览器实例之间创建关联。现在,我正在使用以下方法获取浏览器的上下文id: const{browserContextId}=wait browser.\u connection.send('Target.createBrowserContext'); 我将它和其他与任务相关的细节一起存储在一个文件中。我的目标是能够以某种方

这是对我之前问过的一个问题的更新,但我问这个问题时没有直接思考(我对我的解决方案采取了非常倒退的方法)。我目前正在与Puppeter合作,我正在尝试在特定任务和Puppeter浏览器实例之间创建关联。现在,我正在使用以下方法获取浏览器的上下文id:

const{browserContextId}=wait browser.\u connection.send('Target.createBrowserContext');
我将它和其他与任务相关的细节一起存储在一个文件中。我的目标是能够以某种方式使用存储的上下文id关闭浏览器实例。我已经阅读了木偶演员的GitHub,希望它能在某种程度上有所帮助,但它似乎对我没有太大帮助,因为它与我正在做的事情没有太大关系

真正的问题是,我将在一个文件中生成浏览器实例,并尝试在另一个文件中关闭它们,否则这根本不是问题。现在,我唯一能做的就是使用上下文id生成另一个浏览器实例(对我的任务来说几乎毫无用处),但没有成功地关闭或删除它

任何帮助都将不胜感激,谢谢


如果有更好的方法来解决这个关联问题,我洗耳恭听

原来我想得太多了,想把它弄得太复杂了。对于任何试图做类似事情的人,我将把我的解决方案留给你

我发现只获取浏览器的进程id(pid)要比使用浏览器的上下文id容易得多。从那里,我可以根据运行close命令的位置,使用不同的策略终止进程

对于Node.js:
//比如说,我们正在像这样实例化浏览器
const browser=wait puppeter.launch({headless:false});
//您只需运行此命令即可获得浏览器的pid
const browserPID=browser.process().pid
//然后,您可以将其存储起来供以后使用
writeFile(文件,JSON.stringify(jsondata,null,4),(err)=>{
if(err)console.log(err);
})
//或者干脆停止这个过程
进程。kill(browserPID);
请记住,如果要存储PID,则需要读取文件并解析数据以传递到
process.kill
命令中

通过电子进行反应
//需要电子文件中的进程
const process=window.require('process');
//然后和以前一样的过程
process.kill(你的浏览器PID);

希望我的愚蠢能在将来帮助那些试图做类似事情的人。这比我想象的要容易得多。

嘿,伙计。如果我想杀死一个浏览器实例,也就是说,停止一个机器人,你认为这样行吗?我正在尝试实现一个启动和停止功能的机器人按钮点击前端。我能用这个做到吗?是的,它应该做到,这就是我用我的做的。太好了。如果您不介意的话,请告诉我您从
process.kill(browserPID)中的
process
是从哪里得到的?绝对不是一个愚蠢的问题,但不会。它只使用传入的PID终止进程。因此,在本例中,PID是您得到的浏览器PID。