Puppeteer中的多浏览器与多选项卡

问题描述 投票:2回答:1

我有100个网页,我必须测试运行时错误。我发现Puppeteer插件可以做到“没有汗水”,但我陷入了一个两难的境地:有一个推出的浏览器有多个标签或每个链接的新浏览器。在这种情况下,最好的方法是什么?

如果有多个标签,我听说,当标签不在焦点时,css动画和其他东西(现在不能记住)有可能不起作用。

显然,多个浏览器会导致更高的CPU负载(没有?)

node.js browser puppeteer
1个回答
2
投票

在我看来,这些是每种方法的优点:

多种浏览器的优势:

  • 单独的进程:如果一个浏览器崩溃,其他浏览器继续运行

一个浏览器的优势(多页):

  • 减少内存使用量:虽然实际上内存和CPU使用率在很大程度上取决于您正在执行的任务(屏幕截图,DOM操作)
  • cookie(和其他数据)是共享的

还可以选择使用多个contexts,它需要比两个独立浏览器更少的内存,但不共享cookie。

所以实际上,你应该尝试两种选择。您可能想看一下我写的库puppteer-cluster,它还会在崩溃的情况下处理错误处理和浏览器重启。

您只需编写代码并在多个浏览器与多个页面之间切换,只需一行:

const cluster = await Cluster.launch({
    concurrency: Cluster.CONCURRENCY_PAGE, // which kind of concurrency
    maxConcurrency: 2, // number of parallel workers
});

只需用CONCURRENCY_PAGE替换CONCURRENCY_BROWSER即可试用多个浏览器。您可能还想尝试第三种选择CONCURRENCY_CONTEXT

© www.soinside.com 2019 - 2024. All rights reserved.