WPF+CEF 执行JS报错

WPF+CEF 执行JS报错

在WPF中执行 webBrowser.EvaluateScriptAsync("window.scrollBy(0, 1000);");

在部分网站会报异常:
Request BrowserId : XXXX not found it's likely the browser is already closed


环境

.Net Framework 4.7

CefSharp.Wpf 131.3.50

解决方案:

使用CEF的控制台去执行

xml 复制代码
// xaml 页面
<cef:ChromiumWebBrowser x:Name="webBrowser" />
csharp 复制代码
//using CefSharp.Wpf;

public static async Task<ResultInfo> GetEvaluateJsAsync(ChromiumWebBrowser webBrowser, string js)
{
    var res = new ResultInfo() { Success = false };
    try
    {
        if (webBrowser == null || webBrowser.IsDisposed)
            return res;

        var client = webBrowser.GetDevToolsClient();
        if (client == null)
            return res;

        var result = await client.Runtime.EvaluateAsync(js, null, true, null, null, true, null, true);
        if (result == null || result.ExceptionDetails != null)
            return res;
        res.Result = result.Result.Value?.ToString();
        res.Success = true;
        return res;
    }
    catch (Exception ex)
    {
        res.Result = ex.Message;
        return res;
    }
}

 public class ResultInfo
 {
     public bool Success { get; set; }
     public string Result { get; set; }
 }
相关推荐
Rotion_深7 小时前
C# WPF使用线程池运行Action方法
c#·wpf·线程池
攻城狮CSU18 小时前
WPF 深入系列.2.布局系统.尺寸属性
wpf
攻城狮CSU1 天前
WPF 深入系列.2.布局系统.布局控件.Grid
wpf
玖笙&1 天前
✨WPF编程基础【1.3】:XAML 名称空间
c++·wpf·visual studio
玖笙&1 天前
✨WPF编程基础【1.4】:类型转换器(含示例及源码)
c++·wpf·visual studio
Dream achiever2 天前
3.WPF - 依赖属性
c#·wpf
Dream achiever2 天前
11.WPF 的命令处理事件--参数介绍
开发语言·c#·wpf
布伦鸽2 天前
C# WPF DataGrid 数据绑定时的单元格编辑类型模板
开发语言·c#·wpf
Dream achiever2 天前
5.WPF控件---ComboBox
wpf
极客智造2 天前
FAQ: 如何在 WPF 项目中强制指定统一输出目录并确保 VS 调试正常?
wpf