Puppeteer 在不设置断点时呈现空白页面
Puppeteer renders blank pages when not setting breakpoints
我使用的是最新版本的 PuppeteerSharp
,但在未设置断点时呈现空白页面时遇到问题。
如果我只是让逻辑在不中断的情况下通过,那么代码似乎 "awaiting" 不正确。
代码如下:
using (var browser = await Puppeteer.LaunchAsync(new LaunchOptions
{
Headless = true
}))
{
using (var page = await browser.NewPageAsync())
{
await page.SetContentAsync(htmlDoc.SaveToString()); //this is an HTMLAgilityPack document
var result = await page.GetContentAsync(); //if I break here for a couple of seconds, it works
using (var sr = await page.PdfStreamAsync())
{
using (var ms = new MemoryStream())
{
sr.CopyTo(ms);
return File(ms.ToArray(), "application/pdf");
}
}
}
}
我是不是做错了什么?当我得到空白页时,我得到了预期的页数。奇怪。
编辑:图像被渲染但文本未被渲染。另外,我应该提到我正在使用他们网站上的 Google Front。所以可能是 woff
文件还没有下载。
有没有办法等到 page
下载完所有远程内容后再继续?
您可以尝试一些等待导航选项。像这样:
await page.SetContentAsync(
htmlDoc.SaveToString(),
new NavigationOptions { WaitUntil = new[] { WaitUntilNavigation. Networkidle0 }});
我使用的是最新版本的 PuppeteerSharp
,但在未设置断点时呈现空白页面时遇到问题。
如果我只是让逻辑在不中断的情况下通过,那么代码似乎 "awaiting" 不正确。
代码如下:
using (var browser = await Puppeteer.LaunchAsync(new LaunchOptions
{
Headless = true
}))
{
using (var page = await browser.NewPageAsync())
{
await page.SetContentAsync(htmlDoc.SaveToString()); //this is an HTMLAgilityPack document
var result = await page.GetContentAsync(); //if I break here for a couple of seconds, it works
using (var sr = await page.PdfStreamAsync())
{
using (var ms = new MemoryStream())
{
sr.CopyTo(ms);
return File(ms.ToArray(), "application/pdf");
}
}
}
}
我是不是做错了什么?当我得到空白页时,我得到了预期的页数。奇怪。
编辑:图像被渲染但文本未被渲染。另外,我应该提到我正在使用他们网站上的 Google Front。所以可能是 woff
文件还没有下载。
有没有办法等到 page
下载完所有远程内容后再继续?
您可以尝试一些等待导航选项。像这样:
await page.SetContentAsync(
htmlDoc.SaveToString(),
new NavigationOptions { WaitUntil = new[] { WaitUntilNavigation. Networkidle0 }});