Puppeteer - 无法读取未定义的 属性 'executablePath'
Puppeteer - Cannot read property 'executablePath' of undefined
无论我尝试了什么,我总是得到 executablePath is undefined。不幸的是,google 上没有太多关于此的信息。如果有人能让我知道在哪里可以更深入地解决这个错误,那就太好了。 revisionInfo 返回未定义。
错误
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.log(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();
根据您的错误消息,问题出在这一行
executablePath: revisionInfo.executablePath,
其中 revisionInfo
未定义,这意味着这不会为您提供所需的数据:
const revisionInfo = await browserFetcher.download('970485');
如果您确实需要特定的 executablePath
,您需要确保 revisionInfo
获得您想要的值。
否则,您可以删除行 executablePath: revisionInfo.executablePath,
并让 puppeteer 使用其默认的 chromium 浏览器。
看两件事
- 如果您安装了 apt chromium-browser,请删除它
- 尝试运行并使用 x86 服务器而不是基于 ARM 的服务器(AWS 的 t4g 实例)进行安装
其中一个解决了我的问题。代码还是一样。
无论我尝试了什么,我总是得到 executablePath is undefined。不幸的是,google 上没有太多关于此的信息。如果有人能让我知道在哪里可以更深入地解决这个错误,那就太好了。 revisionInfo 返回未定义。
错误
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.log(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();
根据您的错误消息,问题出在这一行
executablePath: revisionInfo.executablePath,
其中 revisionInfo
未定义,这意味着这不会为您提供所需的数据:
const revisionInfo = await browserFetcher.download('970485');
如果您确实需要特定的 executablePath
,您需要确保 revisionInfo
获得您想要的值。
否则,您可以删除行 executablePath: revisionInfo.executablePath,
并让 puppeteer 使用其默认的 chromium 浏览器。
看两件事
- 如果您安装了 apt chromium-browser,请删除它
- 尝试运行并使用 x86 服务器而不是基于 ARM 的服务器(AWS 的 t4g 实例)进行安装
其中一个解决了我的问题。代码还是一样。