【发布时间】:2018-09-07 18:26:27
【问题描述】:
我有 100 个网页需要测试运行时错误。我发现 Puppeteer 插件可以“毫不费力”地做到这一点,但我遇到了一个难题:有一个带有多个选项卡的启动浏览器或每个链接的新浏览器。在这种情况下,最好的方法是什么?
如果有多个标签,我听说,当标签不在焦点时,css 动画和其他东西(现在不记得了)有可能不起作用。
显然,多浏览器会导致更高的 CPU 负载(不是吗?)
【问题讨论】:
我有 100 个网页需要测试运行时错误。我发现 Puppeteer 插件可以“毫不费力”地做到这一点,但我遇到了一个难题:有一个带有多个选项卡的启动浏览器或每个链接的新浏览器。在这种情况下,最好的方法是什么?
如果有多个标签,我听说,当标签不在焦点时,css 动画和其他东西(现在不记得了)有可能不起作用。
显然,多浏览器会导致更高的 CPU 负载(不是吗?)
【问题讨论】:
这些是我认为每种方法的优点:
多浏览器的优势:
一种浏览器的优势(多页):
还有使用多个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你可能想试试。
【讨论】: