标签: cefsharp.offscreen

使用CefSharp.Offscreen检索需要Java渲染的网页

我有一个希望是简单的任务,但是它将需要精通CefSharp的人员来解决。

我有一个要从中检索HTML的URL。问题在于此特定的url实际上并未在GET上分发页面。相反,它将大量Javascript推送到浏览器,然后浏览器执行并生成实际的呈现页面。这意味着涉及HttpWebRequest并且HttpWebResponse不会起作用的常规方法。

我研究了许多不同的“无头”选项,由于多种原因,我认为最能满足我的需求的选项是CefSharp.Offscreen。但是我对这件事的运作方式一无所知。我看到有几个事件可以订阅,还有一些配置选项,但是我不需要嵌入式浏览器之类的东西。

我真正需要的是一种执行以下操作(伪代码)的方法:

string html = CefSharp.Get(url);
Run Code Online (Sandbox Code Playgroud)

订阅事件没有问题,如果那是等待Javascript执行并生成呈现页面所需的条件。

javascript c# headless-browser cefsharp cefsharp.offscreen

5
推荐指数
2
解决办法
1万
查看次数

CefSharp WpfControl 和渲染到图像

我们想要在 wpf 应用程序中的基于 chromium 的浏览器中显示网页。在浏览器中显示的网站也应该显示在另一个屏幕上,但没有交互。我想将 cefsharp wpf 浏览器控件和 cefsharp 离屏渲染结合起来。

我可以使用一个 chromium 实例来显示带有 wpf 交互的页面并将当前可见网站导出为图像吗?

感谢你并致以真诚的问候,

西蒙

cefsharp cefsharp.offscreen

2
推荐指数
1
解决办法
2386
查看次数

在 IRequestHandler 中有 OnBeforeResourceLoad 的替代品吗?

我正在尝试使用 CefSharp 动态更改用户代理。我查看了 IRequestHandler 类,但不再看到名为 OnBeforeResourceLoad 的方法。

但是,我确实找到了一个名为 OnBeforeBrowse 的方法。但是,所有请求标头都是空的,当我尝试添加一个时,它根本没有添加。我试图参考,更改值并重新分配,但没有骰子。

  • CefSharp:75.1.142
  • .NET:4.7.2
  • 离屏

我在 IRequestHandler 中找到了一个叫做 OnBeforeBrowse 的方法。但是,所有请求标头都是空的,当我尝试通过 IRequest 参数添加一个时,它根本没有添加。我试图参考,更改值并重新分配,但没有骰子。总是空着没有钥匙回来。

protected override bool OnBeforeBrowse(IWebBrowser chromiumWebBrowser, IBrowser browser, IFrame frame, IRequest request, bool userGesture, bool isRedirect)
{
    var headers = request.Headers;
    headers["User-Agent"] = "New user agent";
    request.Headers = headers;
    return false;
}
Run Code Online (Sandbox Code Playgroud)

我希望用户代理更改为我给它的值。

c# chromium-embedded cefsharp cefsharp.offscreen

1
推荐指数
1
解决办法
2764
查看次数