I'm trying to run the puppeteer cluster docs example but it keeps giving me "Error: Unable to get browser page".
This is the debugging log:
puppeteer-cluster: Cluster Launching +0ms
puppeteer-cluster: Worker Starting #0 +0ms
puppeteer-cluster: Worker Error getting browser page (try: 0), message: this.browser.createIncognitoBrowserContext is not a function +16ms
puppeteer-cluster: SingleBrowserImpl Repair requested +0ms
puppeteer-cluster: SingleBrowserImpl Starting repair +0ms
puppeteer-cluster: Worker Starting #1 +1ms
puppeteer-cluster: Worker Error getting browser page (try: 0), message: this.browser.createIncognitoBrowserContext is not a function +330ms
puppeteer-cluster: SingleBrowserImpl Repair requested +331ms
puppeteer-cluster: SingleBrowserImpl Starting repair +0ms
puppeteer-cluster: Worker Error getting browser page (try: 1), message: this.browser.createIncognitoBrowserContext is not a function +1ms
puppeteer-cluster: SingleBrowserImpl Repair requested +1ms
puppeteer-cluster: Worker Error getting browser page (try: 1), message: this.browser.createIncognitoBrowserContext is not a function +302ms
puppeteer-cluster: SingleBrowserImpl Repair requested +302ms
puppeteer-cluster: SingleBrowserImpl Starting repair +0ms
puppeteer-cluster: Worker Error getting browser page (try: 2), message: this.browser.createIncognitoBrowserContext is not a function +1ms
puppeteer-cluster: SingleBrowserImpl Repair requested +1ms
puppeteer-cluster: Worker Error getting browser page (try: 2), message: this.browser.createIncognitoBrowserContext is not a function +316ms
puppeteer-cluster: SingleBrowserImpl Repair requested +316ms
puppeteer-cluster: SingleBrowserImpl Starting repair +0ms
puppeteer-cluster: Worker Error getting browser page (try: 3), message: this.browser.createIncognitoBrowserContext is not a function +1ms
puppeteer-cluster: SingleBrowserImpl Repair requested +1ms
puppeteer-cluster: Worker Error getting browser page (try: 3), message: this.browser.createIncognitoBrowserContext is not a function +312ms
puppeteer-cluster: SingleBrowserImpl Repair requested +312ms
puppeteer-cluster: SingleBrowserImpl Starting repair +0ms
This is until try 9.
Run with Node.js v20.10.0
Edit:
Since it seems like more than one person can't read the first sentence I wrote, here's the code:
const { Cluster } = require('puppeteer-cluster');
(async () => {
const cluster = await Cluster.launch({
concurrency: Cluster.CONCURRENCY_CONTEXT,
maxConcurrency: 2,
});
await cluster.task(async ({ page, data: url }) => {
await page.goto(url);
const screen = await page.screenshot();
// Store screenshot, do something else
});
cluster.queue('http://www.google.com/');
cluster.queue('http://www.wikipedia.org/');
// many more pages
await cluster.idle();
await cluster.close();
})();
The latest version of the puppeteer-cluster
package (v0.23.0) does not support the latest version of the puppeteer package (v22.0.0) due to breaking changes.
As you can see, the browser context has been renamed in the latest version of the puppeteer package:
https://github.com/puppeteer/puppeteer/issues/11834
To solve, until the puppeteer-cluster
package is updated, I recommend using an older version of the puppeteer package ( <= v21.11.0):
npm install puppeteer@21.11.0
OR
yarn add puppeteer@21.11.0