Мое старое приложение 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 и используйте другое управление браузером
<Window ...
xmlns:winforms="clr-namespace:System.Windows.Forms;assembly=System.Windows.Forms">
<WindowsFormsHost>
<winforms:WebBrowser x:Name="webBrowser"/>
</WindowsFormsHost>
</Window>