gpt4 book ai didi

promise - Puppeteer 的 chromium 打开时出现错误并停止了 puppeteer 脚本

转载 作者:行者123 更新时间:2023-12-05 07:20:03 24 4
gpt4 key购买 nike

我正在尝试在我的系统上设置 puppeteer。我遵循了许多不同的教程和指南,但我一直遇到这个问题。 Chromium 似乎无法正确打开。以下内容基于我遵循的其中一个指南中的示例测试。

我从 chromium 得到的错误:

image of chromium

CLI 上的错误消息:

(node:17168) UnhandledPromiseRejectionWarning: Error: Page crashed!
at Page._onTargetCrashed (C:\Users\dgros\Documents\Git\test\pup\node_modules\puppeteer\lib\Page.js:215:24)
at CDPSession.Page.client.on.event (C:\Users\dgros\Documents\Git\test\pup\node_modules\puppeteer\lib\Page.js:123:56)
at CDPSession.emit (events.js:198:13)
at CDPSession._onMessage (C:\Users\dgros\Documents\Git\test\pup\node_modules\puppeteer\lib\Connection.js:200:12)
at Connection._onMessage (C:\Users\dgros\Documents\Git\test\pup\node_modules\puppeteer\lib\Connection.js:112:17)
at WebSocketTransport._ws.addEventListener.event (C:\Users\dgros\Documents\Git\test\pup\node_modules\puppeteer\lib\WebSocketTransport.js:44:24)
at WebSocket.onMessage (C:\Users\dgros\Documents\Git\test\pup\node_modules\ws\lib\event-target.js:120:16)
at WebSocket.emit (events.js:198:13)
at Receiver.receiverOnMessage (C:\Users\dgros\Documents\Git\test\pup\node_modules\ws\lib\websocket.js:789:20)
at Receiver.emit (events.js:198:13)
(node:17168) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function wit
hout a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 1)
(node:17168) [DEP0018] DeprecationWarning: Unhandled promise

我遵循的指南来自:https://www.youtube.com/watch?v=IvaJ5n5xFqU

我已经安装了10.16.0版的node.js和1.19.0版的puppeteer

我安装了 puppeteer:

npm i puppeteer

我使用命令从 Git Bash 运行的示例测试:“node index.js”:

const puppeteer = require('puppeteer');

(async function main() {
try {

const browser = await puppeteer.launch({ headless: false, ignoreDefaultArgs: ['--disable-extensions'], devtools: true});
const page = await browser.newPage();

page.setUserAgent('Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.100 Safari/537.36')

await page.goto('https://experts.shopify.com');

await page.waitForNavigation();

console.log('its showing');

} catch (e) {
console.log('our error', e);
}
})();

产生同样的错误:

const puppeteer = require('puppeteer');

(async function main() {
try {
const browser = await puppeteer.launch({ headless: false, ignoreDefaultArgs: ['--disable-extensions'], devtools: true});
const page = await browser.newPage();

} catch (e) {
console.log('our error', e);
}
})();

当我省略带有“browser.newPage()”的行时, Chrome “哇,啪!”错误仍然存​​在,但 UnhandledPromiseRejectionWarning 错误消息消失了。

预期:chromium 打开,导航到“https://experts.shopify.com” ',等待它加载,然后将 'its showing' 打印到 Git Bash CLI。

实际情况:chromium 打开时出现错误,并向 Git Bash CLI 输出一条错误消息,没有其他任何反应。

为什么 Chromium 打开时出错?如何让脚本运行并按预期运行?

最佳答案

看来您的问题可能是由异步编排问题引起的(参见 issueissue)。

为了解决这个问题,您可以尝试使用以下两种解决方案之一:

解决方案一

await Promise.all([
page.goto('https://experts.shopify.com'),
page.waitForNavigation()
]);

方案二

const waitForNavigation = page.waitForNavigation();
await page.goto('https://experts.shopify.com');
await waitForNavigation;

希望对您有所帮助!

关于promise - Puppeteer 的 chromium 打开时出现错误并停止了 puppeteer 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57630841/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com