如何使用 chromium 网络浏览器获取 javascript 的返回值。我知道如何为 DOM 元素赋值。但我不知道如何使用 cef Sharp 获取 DOM 元素的值。 我的示例代码是这样的。
//chromeBrowser = ChromiumWebBrowser object
String script =
string.Format("document.getElementsByName('DOMElementName')
[0].value;");
chromeBrowser.EvaluateScriptAsync(script).ContinueWith(x =>
{
// I want to use the returned value of the script above
});
我怎样才能实现这个目标。
最佳答案
您可能对 official CefSharp FAQ 感兴趣他们在 GitHub 上有。
<小时/>您需要等待 FrameLoadEnd
事件触发。只有在那之后你才能评估脚本。然后使用要在框架上执行的脚本字符串调用 EvaluateScriptAsync
,然后返回一个包含操作结果的任务。
browser.FrameLoadEnd += (sender, args) =>
{
var task = args.frame.EvaluateScriptAsync(script, null);
task.ContinueWith(t =>
{
if (!t.IsFaulted)
{
var response = t.Result;
var result = = response.Success ? (response.Result ?? "null") : response.Message;
// TODO: do something with the result
}
}, TaskScheduler.FromCurrentSynchronizationContext());
};
关于javascript - 如何在 C# 中使用 chromium Web 浏览器获取 javascript 的返回值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54724581/