如何解决未等待 PuppeteerSharp 异步 javascript 函数
当我使用 PuppeteerSharp 加载包含异步函数的网页时,异步函数中的代码永远不会运行(或不等待,我不确定是哪个)
C# 代码:
await new BrowserFetcher().DownloadAsync(BrowserFetcher.DefaultChromiumRevision);
var url = $"http://127.0.0.1:8080/?code={code}&id={id}";
var file = "C:\\temp\\test3.jpg";
var launchOptions = new LaunchOptions()
{
Headless = true
};
var navOptions = new NavigationOptions
{
WaitUntil = new [] { WaitUntilNavigation.Networkidle0 }
};
using (var browser = await Puppeteer.LaunchAsync(launchOptions))
using (var page = await browser.NewPageAsync())
{
await page.GoToAsync(url,navOptions);
await page.WaitForSelectorAsync(".complete"); // This times out
await page.ScreenshotAsync(file);
}
Javascript 代码:
onmount = () => {
const params = new URLSearchParams(document.location.search);
const code = params.get('code');
// search is an async function (not included here for brevity)
search(code).then(result => {
this.el.classList.add('complete'); // not executed
this.updateTitle(result.name);
});
};
异步 javascript 在浏览器中按预期工作,但不是通过 Puppeteer / Chromium
有人知道为什么会这样吗?
解决方法
当我以非无头方式运行 puppeteer 并检查页面时,我收到了由 api 调用引起的 ERR_CERT_AUTHORITY_INVALID 错误。全部整理完毕。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。