Puppeteer - Не удается прочитать свойство «executablePath» неопределенного

Независимо от того, что я пробовал, я всегда получаю, что executablePath не определен. К сожалению, в гугле мало информации по этому поводу. Было бы здорово, если бы кто-нибудь мог сообщить мне, где копать глубже, чтобы решить эту ошибку. ревизияИнфо возвращает неопределенное значение.

Ошибка

BrowserFetcher {
  _product: 'chrome',
  _downloadsFolder: '/var/www/node_modules/puppeteer/.local-chromium',
  _downloadHost: 'https://storage.googleapis.com',
  _platform: 'linux' }
TypeError: Cannot read property 'executablePath' of undefined
    at demo1 (/var/www/filename.js:10:36)

Исходный код

const puppeteer = require('puppeteer');

const demo1 = async () => {
  try {
    const browserFetcher = puppeteer.createBrowserFetcher();
    console.info(browserFetcher);
    const revisionInfo = await browserFetcher.download('970485');
    const browser = await puppeteer.launch({
      headless: false,
      executablePath: revisionInfo.executablePath,
      args: ['--window-size=1920,1080', '--disable-notifications'],
    });
    const page = await browser.newPage();
    await page.setViewport({
      width: 1080,
      height: 1080,
    });
    await page.goto('https://example.com', {
      waitUntil: 'networkidle0',
    });

    await page.close();
    await browser.close();
  } catch (e) {
    console.error(e);
  }
};

demo1();
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
0
30
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Судя по вашему сообщению об ошибке, проблема в этой строке

      executablePath: revisionInfo.executablePath,

где revisionInfo не определено, что означает, что это не дает вам нужных данных:

    const revisionInfo = await browserFetcher.download('970485');

Если вам действительно нужен конкретный executablePath, вам нужно убедиться, что revisionInfo получает желаемое значение.

В противном случае вы можете просто удалить строку executablePath: revisionInfo.executablePath, и позволить puppeteer использовать браузер Chrome по умолчанию.

Ответ принят как подходящий

Посмотрите на две вещи

  1. Если вы сделали apt install chromium-browser , удалите это
  2. Попробуйте запустить и установить с помощью сервера x86 вместо сервера на базе ARM (экземпляр t4g от aws)

Любой из них решил мою проблему. Код остался прежним.

Другие вопросы по теме