gpt4 book ai didi

c# - CefSharp EvaluateScriptAsync 总是返回 null

转载 作者:行者123 更新时间:2023-12-05 05:09:21 29 4
gpt4 key购买 nike

我正在尝试获取存储在页面上的财务数据点(“https://www.avanza.se/aktier/om-aktien.html/31607/ica-gruppen”)。

稍微提炼一下问题。

Chrome console

然后我尝试将数据点从 CEFSHARP 浏览器返回到 C#。

 const string script = @"(function() 
{
var data = this.Highcharts.charts[0].series[0].points;

return data;
})();";

browser.EvaluateScriptAsync(script).ContinueWith(x =>
{
var response = x.Result;

if (response.Success && response.Result != null)
{
//Saving the data to a database.
}
});

这返回 NULL 或未定义。然后我试着检查 key 是否可用。代码如下。

browser.FrameLoadEnd += testing;

private void testing(object sender, FrameLoadEndEventArgs args)
{
const string scriptet = @"(function() { var body = window; return Object.keys(body) + ' ' + 'Empty'; })();";


browser.GetMainFrame().EvaluateScriptAsync(scriptet).ContinueWith(y =>
{
var response = y.Result;

if (response.Success && response.Result != null)
{
var onePlusOne = (int)response.Result;

}

});
}

我得到了所有基本键,但没有一个与页面相关

我在 devtools 中尝试了同样的操作,运行这个命令:

Object.keys(window)

enter image description here

最佳答案

解决问题需要考虑以下几点:

  • 等待页面完全加载。
  • 等待图表加载数据。
  • 将数据字段投影到自定义对象的新数组中(就像您在 linq select 中所做的那样)

然后你可以从图表中获取数据:

ChromiumWebBrowser browser;
protected override void OnLoad(EventArgs e)
{
base.OnLoad(e);
browser = new ChromiumWebBrowser(
"https://www.avanza.se/aktier/om-aktien.html/31607/ica-gruppen");
browser.LoadingStateChanged += Browser_LoadingStateChanged;
browser.Dock = DockStyle.Fill;
Controls.Add(browser);
}

private async void Browser_LoadingStateChanged(object sender,
LoadingStateChangedEventArgs e)
{
if(!e.IsLoading)
{
await Task.Delay(5000);
var script = @"
(function () {
var data = Highcharts.charts[0].series[0].points;
return Array.from(data, p => ({x:p.x, y:p.y, name: p.name}));
})();";
var result = await browser.EvaluateScriptAsync(script);
MessageBox.Show($"{((dynamic)result.Result).Count}");
}
}

关于c# - CefSharp EvaluateScriptAsync 总是返回 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57633701/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com