Is openEuler compatible with Puppeteer version 21.6.1?

I’m trying to use Puppeteer version 21.6.1 on openEuler but encountering a specific error. Here’s the code I am working with:

const browserInstance = await puppeteer.launch({
  headless: true,
  args: ['--disable-gpu']
});
await page.navigateTo(url, { waitUntil: 'networkidle2', timeout: 120000 });

const pdfData = await page.createPdf({
  format: 'A4',
  printBackground: true,
  scale: 0.7,
  margin: { left: '0.5cm', top: '1cm', right: '0.5cm', bottom: '1cm' } 
});

I’m using Chrome version linux-119.0.6045.105 and am receiving the following error message:

TargetCloseError: Protocol error (Page.navigate): Target closed
...

How can I fix this issue? If openEuler is not supported, where can I find official confirmation?

The error you're experiencing, TargetCloseError: Protocol error (Page.navigate): Target closed, typically means that the browser instance is unexpectedly closing or not starting correctly. Here are several steps you could take to diagnose and fix this issue:

  1. Check Dependencies: Ensure that all necessary dependencies for running Puppeteer on openEuler are installed. Puppeteer requires specific libraries that may not be present by default on every Linux distribution, including openEuler. Common missing packages might include libnss3, libxss1, fonts-liberation, and others.
  2. Review Headless Arguments: The args parameter might require additional flags for your specific setup. Consider adding flags such as --no-sandbox or --disable-setuid-sandbox if you're encountering permissions issues. Example:
  3. const browserInstance = await puppeteer.launch({
      headless: true,
      args: ['--disable-gpu', '--no-sandbox', '--disable-setuid-sandbox']
    });
    
  4. Update Chrome: Make sure that your Chrome version is up to date. Occasionally, the version mismatch between Puppeteer and Chrome can lead to unexpected behavior.
  5. Alternative Debugging: Try running Puppeteer in non-headless mode to visually inspect what happens before the error occurs:
  6. const browserInstance = await puppeteer.launch({
      headless: false,
      args: ['--disable-gpu']
    });
    
  7. Check Logs:** When the browser crashes, it may leave logs that offer more insight. Review the output in the terminal for more specific error messages or use console.log for debugging within your code.

If openEuler compatibility with Puppeteer is in doubt, it's wise to check the official Puppeteer GitHub repository or related community discussions. Documentation and issue threads are good places to find any known compatibility notes or updates.