问题标签 [cefsharp.offscreen]
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 - 使用 CefSharp.Offscreen 检索需要 Javascript 呈现的网页
我有一个希望是简单的任务,但它需要一个精通 CefSharp 的人来解决它。
我有一个要从中检索 HTML 的 url。问题是这个特定的 url 实际上并没有在 GET 上分发页面。相反,它将一堆 Javascript 推送到浏览器,然后浏览器执行并生成实际呈现的页面。这意味着涉及HttpWebRequest
并且HttpWebResponse
不会起作用的通常方法。
我查看了许多不同的“无头”选项,出于多种原因,我认为最能满足我需求的选项是 CefSharp.Offscreen。但我不知道这件事是如何运作的。我看到有几个可以订阅的事件和一些配置选项,但我不需要嵌入式浏览器之类的东西。
我真正需要的是一种方法来做这样的事情(伪代码):
我订阅事件没有问题,如果这是等待 Javascript 执行并生成渲染页面所需要的。
c# - 异步控制台程序在使用 CefSharp 完成任务时挂起
为了创建完美的string result = browser.Browse(url)
方法,我创建了一个简单的类库来演示 CefSharp。代码是:
这是测试工具,在引用 CefSharpHeadlessBrowser 项目的单独控制台项目中:
这确实有效;它正确地获取 HTML 页面源并将其显示在控制台窗口中,就像它应该的那样。但问题是:控制台程序在显示页面源后挂起。 它应该立即退出。这一定意味着我在异步操作上做错了什么并导致死锁。
可能是什么问题?
c# - CefSharp.offscreen 正确呈现,但 DOM 访问不起作用
我正在使用 Cefsharp.Offscreen 项目进行一些自动化。我想执行一些 DOM 操作来选择元素并在其上触发事件。
- 每个 javascript 调用都不会返回我想要选择的元素。
- 如果我截取页面的屏幕截图,它看起来是正确的
- 如果我在 Chrome 控制台中执行相同的 javascript,它可以工作
我想我错过了什么地方。
非常感谢
c# - C# 中使用 Cefsharp 的整页截图
我已经下载了 Minimalexample.Offscreen 的示例。这是我用于屏幕截图的代码,但我没有得到完整的页面。图像被裁剪(仅拍摄可见页面截图)。
如何使用 CefSharp offscreen 或 Cefsharp winforms 获得完整的长页面截图?
c# - c# CefSharp 浏览器无法访问大多数站点
嗨,基本上就是标题所说的。
我正在尝试打开 twitch 并在我的应用程序中播放视频。
设置是
xml代码
抽搐基本上只是不加载,我已经把它放在那里一个多小时,它从来没有出现过,使用谷歌而不是在大约 10 秒内加载页面。我浏览了他们的 wiki、Youtube 和 Stackoverflow,但我找不到加快加载速度的方法。
先感谢您。
c# - 具有代理身份验证的 CefSharp
我想将 CefSharp 与代理一起使用。
我在 C# 中有以下代码:-
但我也想提供代理用户名和密码。如何在 CefSharp 中进行代理身份验证?
c# - 在 asp.net 项目中使用 cefsharp 时出现异常
我试图在 asp.net 项目的代码后面使用 CEF 问题是它一直给出这个错误
无法加载文件或程序集“CefSharp.BrowserSubprocess.Core.DLL”或其依赖项之一。指定的模块无法找到。
甚至我已将所有 CEF 文件复制到项目的 /bin 文件夹。这个错误发生在从 Nuget 包安装 Cef 之后,我还尝试过 CEFSharp.Offscreen 和 CEFSharp.WinForms(它适用于 Windows 应用程序,但不适用于 Web,但我已经尝试过)
cefsharp - CefSharp ScreenshotAsync 并不总是返回正确的位图
我无法使用 CefSharp 有界对象捕获动画的每一帧。看起来返回的位图Browser.ScreenshotAsync
并不总是正确同步。这是我的 javascript 渲染函数,它以恒定的速率水平移动 WebGL 对象:
这是我的 CEF 有界对象:
这确实会保存序列中的每个文件而不会跳过:0000.png、0001.png、0002.png 等。但是,有些图像文件是重复的,有些图像文件会跳帧。我想我遇到了一个不同步的线程问题,但我看不出它可能在哪里。实际上,如果我在最后一行设置断点Browser.EvaluateScriptAsync(callback);
并单步执行动画,则所有文件都按顺序正确生成。
c# - CefSharp 屏幕外 - 等待页面渲染
我有一个问题如下。我使用 CefSharp offscreen 进行网页自动化如下(我只打开一个相同的页面): 1. 打开页面并等待它呈现*。2. 使用 EvaluateScriptAsync 我将值放入输入表单,然后使用相同的方法单击网页上的按钮。3.然后这个网页上有一些JS检查结果并显示消息。4. 当消息显示时,我会截屏。**
但是,我有两个问题: * 我的解决方案必须是 Internet 速度证明。当我使用 BrowserLoadingStateChanged 事件和 IsLoading 方法时,即使触发的事件没有完全加载网页 - 当我启动 EavluateScriptAsync 方法时,它会返回错误,因为页面没有完全加载。当然,我可以说 ThreadSleep 之类的东西,但它并不总是有效 - 它在很大程度上取决于您的互联网速度。
** 当我尝试截屏时,它并不总是包含 JS 显示的结果消息 - 有时会出现加载圆圈而不是消息。在这里,我可以再次使用 THreadSleep,但它并不总是有效。
你有什么想法?提前致谢。
c# - ChromiumWebBrowser Offscreen 不适用于 MsTest/NUnit
我正在尝试在 OffScreen 模式下使用 MsTest 单元测试框架中的 ChromiumWebBrowser 来提供一些测试......但是 Chromium 构造函数一直崩溃,我对此无能为力。
我已经在 github 上的类似帖子中留下了评论:
我也试图在 gitter 频道上寻求帮助。我创建了 MsTest 项目并添加了使用 Chromium 的简单方法:
我的解决方案结构:
我的 testsettings 文件(将所有依赖项部署到测试引擎“TestResults...\Out 文件夹”的工作目录中):
我从 Visual Studio 测试资源管理器运行测试并得到这样的错误:
请帮助,需要任何支持或想法...