web-dev-qa-db-fra.com

Erreur du marionnettiste: la révision du chrome n'est pas téléchargée

J'ai utilisé npm i puppeteer comme indiqué dans Documentation et j'obtiens l'erreur suivante:

(node: 2066) UnhandledPromiseRejectionWarning: Erreur: la révision du chrome n'est pas téléchargée. Exécutez "npm install" ou "yarn install" sur Launcher.launch

lorsque j'essaie cet exemple (également à partir des documents):

const puppeteer = require('puppeteer');
(async () => {
  const browser = await puppeteer.launch();
  const page = await browser.newPage();
  await page.goto('https://example.com');
  await page.screenshot({path: 'example.png'});
  await browser.close();
})();

Aussi dans la documentation:

Remarque: lorsque vous installez Puppeteer, il télécharge une version récente de Chromium (~ 170 Mo Mac, ~ 282 Mo Linux, ~ 280 Mo Win) qui est garantie de fonctionner avec l'API.

Toute aide serait appréciée.

9
Moses Schwartz

Après de nombreuses tentatives, j'ai finalement trouvé la réponse ici :

Sudo npm install puppeteer --unsafe-perm=true --allow-root

Comme l'a souligné @vsync, cela ne fonctionne que pour Linux

17
Moses Schwartz

pour linux:

1- vous devez avoir installé le navigateur chrome à l'aide de cette commande:

$ Sudo apt install -y chrome-browser

2- vous devez obtenir le chemin échangeable du chrome en utilisant cette commande:

$ quel navigateur chrome

3-mettez le chemin exécutable en argument de la fonction de lancement:

   const puppeteer = require('puppeteer-core');
   (async () => {
   const browser = await puppeteer.launch({
   executablePath: '/usr/bin/chromium-browser',
   headless: false
    });
    const page = await browser.newPage();
    await page.goto('https://google.com');
    await page.screenshot({path: 'example.png'});

    await browser.close();
    })();
3
Amr Hussein

La confirmation des solutions présentées ici fonctionne presque. Voici ma configuration. Ubuntu 16.

Installez le navigateur chrimium à partir de la ligne de commande. Ensuite:

    const browser = await puppeteer.launch({
        executablePath: "/usr/bin/chromium-browser",
        args: ['--no-sandbox']
    });
1
f1vlad

je l'ai résolu comme ça:

const browser = await puppeteer.launch({ executablePath: "./node_modules/puppeteer/.local-chromium/win64-656675/chrome-win/chrome.exe"});

notez le win64-656675 dans le chemin, si vous utilisez un système d'exploitation différent, vous devrez pointer vers le dossier approprié.

version marionnettiste: 1.16.0

1
Roy.B

Dans mon cas, cela a fonctionné après avoir supprimé le dossier node_modules et le fichier package-lock.json et relancé l'installation de npm.

1
Vikash Gupta

Si quelqu'un fait encore face à ce problème. Ensuite, allez dans le dossier node_modules puis dans marionnettiste et dans la bibliothèque où vous trouverez launch.js ouvrez le même fichier et recherchez exécutablepath, puis changez sa valeur nulle en votre chrome ou chrome chemin d'accès souhaité.

Pour moi, le chemin comme suit:

/home/Nightwing/node_modules/puppeteer/Launcher.js

0
Rahul9989

J'ai seulement réussi à résoudre le problème en installant manuellement Chromium après beaucoup de recherches et en essayant la plupart des suggestions:

node node_modules/puppeteer/install.js
0
Afshin Ghazi