puppeteer-sharp - 如何在 Windows 7 上使用 puppeteerSharp
问题描述
PuppeteerSharp 的要求如下;我不知道如何在 Windows 7 上使用 PuppeteerSharp,有人可以给我看代码吗?
支持 WebSocket 库的最低 Windows 版本是 Windows 8 和 Windows Server 2012。阅读更多。如果您需要在 Windows 7 上运行 Puppeteer-Sharp,您可以通过 LaunchOptions.WebSocketFactory 属性使用 System.Net.WebSockets.Client.Managed。,怎么做?
解决方案
对于那些想要更准确答案的人来说,我的代码适用于 Windows 7。
private async void SaveToFile(string url)
{
try
{
WebSocketFactory webSocketFactory = CreateWebSocket;
LaunchOptions launchOptions = new LaunchOptions()
{
Headless = true,
WebSocketFactory = webSocketFactory
};
var browser = await Puppeteer.LaunchAsync(launchOptions, product: Product.Chrome);
var page = await browser.NewPageAsync();
await page.GoToAsync(url);
await page.PdfAsync("MyPdf.pdf", new PdfOptions() { Format = PuppeteerSharp.Media.PaperFormat.A4 });
Task.WaitAll(new Task[2] {
page.DisposeAsync().AsTask(),
browser.DisposeAsync().AsTask() });
}
}
}
catch (Exception objException)
{
CommonMsgBox.Warning(objException.Message, "Error");
}
}
private static async Task<System.Net.WebSockets.WebSocket> CreateWebSocket(Uri url, IConnectionOptions options, CancellationToken cancellationToken)
{
var result = new System.Net.WebSockets.Managed.ClientWebSocket();
result.Options.KeepAliveInterval = TimeSpan.Zero;
await result.ConnectAsync(url, cancellationToken).ConfigureAwait(false);
return result;
}
System.Net.WebSockets.Managed
可以从 NuGet 下载所有依赖项。
编辑:Puppeteer 有时会有奇怪的行为,最好不要用它包裹它的组件,using
否则它会在某些情况下挂起。我已经从上面的代码中删除了这个包装。
推荐阅读
- html - CSS Tabs>Div 隐藏在 Container Div 后面
- android - Android Studio:在git中切换到新分支后找不到符号ActivitiyXBinding
- django - 监听来自 Slack 等对话应用程序的事件并更新 Django 数据库
- django - Django Rest Framework 模型序列化程序附加关键字参数无法识别
- typescript - 打字稿“数字”不能用于索引对象常量上的类型
- flutter - ListView 中的容器即使有高度也会扩展
- python - Python3 脚本中的复杂 Bash 循环结构
- css - 页脚图像与页脚文本不在同一行
- java - 创建具有多个子节点的 JSON 对象
- google-sheets - 如果日期是今天,我想计算值