如何解决Puppeteer-sharp:页面从 browser.NewPageAsync() 崩溃
我正在使用 Puppeteer-sharp 的示例代码,但在调用 browser.NewPageAsync()
时遇到超时错误。然后我打开 Devtools
,看到页面在 Chromium 中崩溃了。
var browserFetcher = new BrowserFetcher();
await browserFetcher.DownloadAsync();
var browser = await Puppeteer.LaunchAsync(new LaunchOptions
{
Headless = true,Devtools = true
});
// page is crashed in Chromium and timeout after 5 mins
var page = await browser.NewPageAsync();
await page.GoToAsync("http://www.google.com");
await page.DisposeAsync();
await browser.DisposeAsync();
*PuppeteerSharp 版本为 4.0.0
解决方法
应该是因为PuppeteerSharp需要在Azure的Linux系统上运行(可以通过编码下载安装Chromium)。如果要在 Windows 上测试,需要预装 Chrome/Chromium 并在 ExecutablePath
LaunchOptions
// DEBUG: for running on local
ExecutablePath = "C:\\Program Files (x86)\\Google\\Chrome\\Application\\chrome.exe"
如果您有其他解决方案,请分享。
,您可以在故障排除过程中尝试的其他一些事情:
- 确保处理所有打开的页面和浏览器(正如我在评论中建议的那样)。
- 尝试在您的参数中添加
--full-memory-crash-report
标志(以及其他与崩溃处理相关的标志),以更深入地了解您的执行出了什么问题。你可以从字面上看你的执行的小型转储来理解这个问题。可以在此处找到 Chromium 标志的完整列表:Chromium Command Line Flags - 确保垃圾收集没有问题。由于它只是一个示例代码,您必须确保自己添加了干净/优化执行所需的所有必要代码。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。