我尝试了下面的代码,但无法得到 Chromium 控制台中显示的实际错误。如何获得错误处理的实际错误?
using var browser = await Puppeteer.LaunchAsync(new LaunchOptions {
Headless = true,
ExecutablePath = _browserFetcher.RevisionInfo(BrowserFetcher.DefaultChromiumRevision).ExecutablePath,
Devtools = true // DEBUG: show page content in browser
});
using var page = await browser.NewPageAsync();
page.PageError += (sender, e) => { // cannot catch the error statement
log.LogError("PageError=" + e.Message); // Step3: e.Message is null
throw new ProcessException(e.Message);
};
// Goto target page
await page.GoToAsync(htmlFilePath);
await page.WaitForFunctionAsync("async () => !!(window.Ext && Ext.isReady && window.App && App.app)");
await page.EvaluateFunctionAsync("async (abc) => {" +
" ... " + // logic for prepare PDF content
"}", abcObject);
// Step1: error show in Chromium's console, but not call `page.PageError` yet
await page.WaitForFunctionAsync("async () => App.pdf.ready"); // Step2: call `page.PageError`