如何知道puppeteer实例是否已经存在?

时间:2018-04-24 14:13:39

标签: javascript node.js puppeteer

我有多个puppeteer脚本,我想同时运行,直到现在我为每个脚本使用多个浏览器,但现在我只想使用一个浏览器,多个脚本在不同的页面中同时运行。

我的目标是连接到puppeteer实例(如果已存在)或创建一个(如果它不存在)(这个新创建的实例也将由我的其他脚本使用)。

我怎样才能做到这一点?我知道puppeteer.connect()。 我想实现以下逻辑

Browser.js:
if(puppeteer instance exists){
  return browser.wsEndpoint()
} else {
  browser = await puppeteer.launch();
  return browser.wsEndpoint();
}

在我的脚本文件中:

puppeteer.connect(call browser.js);

这样每当我调用browser.js时,我总会得到一个puppeteer实例。

1 个答案:

答案 0 :(得分:1)

虽然通常是不好的做法,但解决问题的最佳方法可能是使用全局变量。

使用以下代码:

global.browser = await puppeteer.launch(opts);

然后在代码中的任何其他位置使用browser.whateveryoulike