问题标签 [puppeteer-sharp]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
javascript - 如何将 puppeteer Array.from().map() 从 C# 转换为 JavaScript
我在 C# 中使用此代码,它工作正常。
但是当我尝试使用此代码转换 JavaScript 时,它不起作用。
我怎么解决这个问题。
puppeteer - 使用 Chromium 直接渲染到我自己的“画布”(例如 GDI+)
首先,快速描述最终目标:
我正在构建一个跨平台、基于 .NET Core 的打印应用程序。此应用程序将能够使用自定义页面设置打印各种文件类型,例如页眉、页脚和页边距。一个关键特性是它支持多页向上(例如,一张横向纸与两个并排呈现的纵向页面......称为“2up”)。
打印 HTML 很重要,不仅因为打印 HTML,而且我想将所有基于 HTML 的出色语法高亮用于源代码(例如 www.prismjs.com)。
该应用程序基本上完成了,但有一个主要问题:我无法让 HTML 渲染得足够好。到目前为止,我已经实现了源代码打印三种方式:
1) 使用我自己的行号和换行引擎作为纯文本。这对于我可以扔给它的所有东西都非常有效,但它不支持语法突出显示。2) 使用Html-Renderer
( https://github.com/ArthurHub/HTML-Renderer/issues ) 一个基于 OSS .NET 的 Html 渲染器。这个实现是最弱的,因为 Html-Renderer 的 CSS 支持真的很弱。它几乎prismjs
无法highlightjs' generate.
3) Using
通过LiteHtmlSharp
. 这是非常有前途的,我几乎可以让它与一些主要的黑客一起工作,但litehtml
也不支持关键的、现代的、HTML/CSS 特性。
既不也不Html-Renderer
支持litehtml
CSSpage-break-before
功能,当与它结合使用时,media print
我可以确保行不会在页面之间拆分。
我真正想要使用的是 Chromium 渲染引擎。litehtml
为这类问题提供了一个很棒的 API:它在需要渲染时调用我,我使用 GDI+ 绘制(文本、表格边框、图像等)。我的梦想是在 Chromium(CEF、Puppeteer、???)中找到提供类似 API 的东西。
或者,另一种选择,一个 API 可以让我传入 GDI+ 图形(或 HDC),然后渲染器将渲染到该表面。
用Html-Renderer
我测量计算 # 个这样的页面。
我的页面渲染代码(例如OnPaint
)如下所示:
代码htmllite
如下OnPaint
所示:
在这种情况下,调用会litehtml.Document.Draw
导致我的应用程序中出现一堆回调,我使用与调用相同Graphics
的方法来处理这些回调OnPaint
。
大多数关于 CEF 和 Chromium 的讨论都指向ScreenshotAsync
等……因为我需要渲染到 PRINTERS HDC(或 GDI+)并且位图会降低质量,所以不会这样做。
我已经倾注了 Chromium 源代码,但我找不到对 CEF/Chromium 说“将第 1 页(定义为高度/宽度)渲染到此 GDI+ 图形对象”然后“渲染第 2 页......”等的明显方式...打印支持(以及如何集成 pdfium!)。
Chromium 问题311308表明我已经被水洗了,直到重新开始这项工作。
注意:我在我的应用程序中拥有完全访问权限nodejs
。我已经构建了一个 dotnet/nodejs 桥,这就是我如何通过 prismjs 将源代码文件的原始文本文件转换为格式丰富、行编号、语法突出显示的 html。puppeteer
这意味着如果我能找出正确的 API,我就可以轻松使用/Headless Chrome。
有没有人有可能有帮助的建议?如果不是大心脏手术,我愿意为 Chromium 做出贡献。
c# - 我收到异常导航失败,因为浏览器已断开连接
我遇到了一个例外:导航失败,因为浏览器已断开连接。
在我的代码被执行后,它将被using 块关闭。
浏览器断开连接的主要原因是什么?
这是我得到的例外:
在迭代 0 中查找 Google id 78659 的导航 url、屏幕截图和传出 url 时出错,错误消息是:PuppeteerSharp.NavigationException:导航失败,因为浏览器已断开连接!(NetworkManager 无法处理 Fetch.requestPaused。帧 6CCD5A551750D9DF102ABCF53D90B6EB 未找到。在 PuppeteerSharp.Helpers.AsyncDictionaryHelper`2.<>c__DisplayClass4_0.b__0()
这是我的代码:
c# - 使用 puppeteersharp 在 C# 中右键单击网站中的按钮
需要使用 puppeteersharp 在 C# 中的网站中执行右键单击。尝试了以下代码,但它不起作用:
await page.ClickAsync({ button: 'right'}"[class*='_16aPYHYIOVxzNYTA4BGnwS NJVykX0WljoRws2qTYI5G _3FwRpWCSns-2PgbiDhEErG']");
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。,怎么做?
c# - 使用 puppeteer-sharp将文本抓取到一个类中
我目前正在尝试<span>
使用 Puppeteer .NET 恢复 HTML 页面上的标签之间的文本,但我不能。这是我要恢复的部分:
我已经尝试过该功能EvaluateFunction
,但尝试在控制台中打印它却一无所获
我不再考虑确切的 Java 请求,但这一定不是问题,因为我通过检查元素复制它并复制完整路径 JS(在 Chrome 中)。
c# - Puppeteer 在不设置断点时呈现空白页
我正在使用最新版本,PuppeteerSharp
并且在未设置断点时出现空白页呈现问题。
如果我只是让逻辑通过而不中断它,那么代码似乎没有正确“等待”。
这是代码:
难道我做错了什么?当我得到空白页时,我得到了预期的页数。诡异的。
编辑:图像被渲染但不是文本。另外,我应该提到我正在使用他们网站上的 Google Front。所以可能是woff
文件没有下载。
有没有办法等到page
下载所有远程内容后再继续?
puppeteer-sharp - Puppeteer LaunchAsync 抛出异常
我有一个现有的 ASPNET Web 应用程序。前端是 HTML/JavaScript,后端是 WebAPI 2。我们一直在使用 NRECO.PDFGenerator 将 PDF 拖放给用户,这使用 QT 浏览器,调试变得很麻烦。我找到了 PuppeteerSharp 并想试试看。
我使用 nuget 安装了这些库,向我的一个 Web Api 控制器添加了一个 Async 方法,但是当我调用它时,LaunchAsync 方法就崩溃了。
我不知道从这里去哪里。这是控制台输出。还有更多...
导航 google 线程 0x3418 已退出,代码为 0 (0x0)。抛出异常:System.Web.dll 中的“System.NullReferenceException”抛出异常:mscorlib.dll 中的“System.NullReferenceException”
该项目正在使用框架 4.7.2
解决方案
涉及到 Async 方法的所有内容也必须是 Async。此外,传递空参数也会导致问题。
这是一个代码示例。
c# - 如何在弹出窗口中单击按钮?(木偶锋利)
当我单击按钮时,弹出页面正在打开。我必须点击它的按钮。我该怎么做?