Meine alte WinForm-Anwendung hat HtmlElementCollection zum Verarbeiten einer Seite verwendet
HtmlElementCollection hec = this.webbrowser.Document.GetElementsByTagName("input");
In WPF WebBrowser gibt es verschiedene Dinge, die sich unterscheiden. Beispielsweise
this.webbrowser.Document hat keine Methode namens GetElementsByTagName
Daher kann mein Code keine HtmlElementCollection abrufen
Sie müssen einen Verweis auf Microsoft.mshtml
hinzufügen und dann müssen Sie das Dokument als mshtml.HTMLDocument
. Nachdem Sie das getan haben, sollten Sie die Methode getElementsByTagName()
verwenden können
var document = webBrowser.Document as mshtml.HTMLDocument;
var inputs = document.getElementsByTagName("input");
foreach (mshtml.IHTMLElement element in inputs)
{
}
getElementsByTagName()
gibt mshtml.IHTMLElementCollection
und jedes Element mshtml.IHTMLElement
Typ mshtml.IHTMLElement
BEARBEITEN
Alternative Lösung, wenn Sie WinForms WebBrowser
, können Sie anstelle des WPF einen verwenden. Fügen Sie einen Verweis auf WindowsFormsIntegration
und System.Windows.Forms
, erstellen Sie einen Namespace in XAML und verwenden Sie eine andere Browsersteuerung
<Window ...
xmlns:winforms="clr-namespace:System.Windows.Forms;assembly=System.Windows.Forms">
<WindowsFormsHost>
<winforms:WebBrowser x:Name="webBrowser"/>
</WindowsFormsHost>
</Window>