【问题标题】:Get dom element by ID in WebView UWP在 WebView UWP 中通过 ID 获取 dom 元素
【发布时间】:2018-01-30 04:04:45
【问题描述】:

我打算从网站获取一个dom元素的内容,我不能用

var html = await client.GetAsync("http://example.com/test.html");

因为特定的dom元素是在JS执行后填充的 我可以使用 webview 来托管内容,但这不能解决问题 我也不能使用HtmlDocument.GetElementById Method (String),因为它位于通用 Windows 平台不支持的 System.Windows.Forms 命名空间下! 另一种选择是 InvokeAsync

await webView5.InvokeScriptAsync("doSomething", null);  

XAML WebView control sample 的场景 5 所示 但这只会触发事件并且无助于获取 dom 元素(甚至在 JS 执行完成后的源代码)。 //应用是C# UWP,不是Winjs

【问题讨论】:

    标签: javascript c# xaml webview uwp


    【解决方案1】:

    您可以使用HtmlAgilityPack 库来查询您下载的DOM。见example here或搜索更多,有很多。

    或者,您可以运行 javascript 来执行您需要的操作并返回包含您 ID 的字符串。如您所见,InvokeScriptAsync 返回 String,其中可以包含您的 javascript 返回的任何内容。 F.e.,this is how 使用 javascript 获取 DOM:

    var result = await this.webView.InvokeScriptAsync("eval", new[] { "document.documentElement.outerHTML;" });
    

    【讨论】:

      猜你喜欢
      • 2015-12-05
      • 1970-01-01
      • 1970-01-01
      • 2015-09-02
      • 2022-12-05
      • 1970-01-01
      • 2011-09-16
      • 1970-01-01
      • 2017-05-26
      相关资源
      最近更新 更多