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; }
 }
相关推荐
Poetinthedusk15 小时前
设计模式-命令模式
windows·设计模式·c#·wpf·命令模式
棉晗榜19 小时前
WPF印章水印, Border怎么悬浮在其他控件上面,类似盖章一样
wpf
张人玉19 小时前
LiveCharts WPF MVVM 图表开发笔记
大数据·分布式·wpf·livecharts
武藤一雄19 小时前
一款基于WPF开发的BEJSON转换工具
windows·c#·json·wpf
Poetinthedusk1 天前
设计模式-模板方法模式
windows·设计模式·c#·wpf·模板方法模式
武藤一雄2 天前
[奇淫巧技] WPF篇 (长期更新)
windows·microsoft·c#·.net·wpf
Psycho_MrZhang2 天前
Airflow简介和架构
架构·wpf
没有bug.的程序员2 天前
微服务中的数据一致性困局
java·jvm·微服务·架构·wpf·电商
Aevget2 天前
DevExpress WPF中文教程:Data Grid - 如何绑定到有限制的自定义服务(二)?
wpf·devexpress·.net 10·data grid
没有bug.的程序员4 天前
SOA、微服务、分布式系统的区别与联系
java·jvm·微服务·架构·wpf·日志·gc