如何从WPF WebBrowser获取HtmlElementCollection
我的旧WinForm应用程序使用HtmlElementCollection来处理页面
HtmlElementCollection hec = this.webbrowser.Document.GetElementsByTagName("input");
在WPF WebBrowser中,有几个不同的东西。 例如
this.webbrowser.Document没有任何名为GetElementsByTagName的方法
因此我的代码无法获取HtmlElementCollection
您需要添加对Microsoft.mshtml
引用,然后您需要将文档转换为mshtml.HTMLDocument
。 执行此操作后,您应该能够使用getElementsByTagName()
方法
var document = webBrowser.Document as mshtml.HTMLDocument; var inputs = document.getElementsByTagName("input"); foreach (mshtml.IHTMLElement element in inputs) { }
getElementsByTagName()
返回mshtml.IHTMLElementCollection
,每个项目都是mshtml.IHTMLElement
类型
编辑
替代解决方案,如果您需要使用WinForms WebBrowser
您可以使用它而不是WPF。 添加对WindowsFormsIntegration
和System.Windows.Forms
引用,在XAML中创建命名空间并使用不同的浏览器控件