6

我在使用 puppeteer 时遇到了一个问题:我构建了一个控制台应用程序来使用 puppeteer 抓取数据,但是当我的应用程序关闭时,我仍然看到进程任务管理器中出现了许多铬。你能帮我解决这个问题吗?

在此处输入图像描述

4

2 回答 2

9

您应该使用 using 块包装浏览器的创建。像这样:

using(var browser = new await Puppeteer.LaunchAsync())
{
     // your code here...
}
于 2018-12-23T17:17:11.860 回答
2

确保您正确使用浏览器实例以及页面实例。每个打开的页面都需要关闭(处置),浏览器也是如此。

正确用法示例:

        var browser = await Puppeteer.LaunchAsync(new LaunchOptions()
        {
            ExecutablePath = "C:\Program Files (x86)\Google\Chrome\Application\chrome.exe"
        });

        var htmlPage = await browser.NewPageAsync();

        await htmlPage.GoToAsync(url);
        await htmlPage.PdfAsync(path, pdfOptions);
        await htmlPage.CloseAsync();
        await browser.CloseAsync();

在此示例中,我启动浏览器实例,使用指定的 url 打开一个页面,使用 pdfOptions 将其内容下载到路径,正确关闭页面并正确关闭浏览器。完成这些步骤后,任务管理器中就没有 chrome 实例了。

如果有不清楚的地方,请随时询问:)

于 2018-11-19T15:14:55.160 回答