2010-03-18 2 views
5

nicht finden. Verwenden von WebBrowser-Steuerelement in einem WinForm. aber wenn die Webseite von Ajax oder in einem Rahmen aktualisiert wird, kann ich webBrowser1.document.getElementById usw. nicht verwenden, um das htmlElement zu finden. Das Element wird auch nicht in der View->Source code in IE angezeigt.WebBrowser-Steuerelement kann HtmlElement nach Aktualisierung der Ajax-Webseite oder in Frame

Der ursprüngliche Zweck ist, dass htmlElement zu finden und einen Klick oder eine andere Funktion wie invokeMember("staff") zu simulieren.

Antwort

1

Das Document-Objekt des WebBrowsers stellt tatsächlich eine Live-Ansicht des DOM dar, daher kann es einen anderen Grund geben, dass Sie es nicht finden können. DOM-Updates werden jedoch nicht in Ansicht -> Quelle angezeigt. Sie sollten die Entwicklertools von IE8 verwenden, die Ihnen eine Live-Ansicht des DOM zeigen, und vielleicht sehen Sie etwas wie eine falsche/doppelte ID oder so.

0

ich Ihnen raten, bereits löste dieses Problem auf eigene Faust, aber wenn Sie nicht haben, finden hier meine Frage: WebBrowser Control and GetElement by ID

Wesentlichen, wenn Sie etwas zu dem WebBrowser Steuerelement zu tun (dh , fügen Sie ein Mitglied zum DOM hinzu) wird es asynchron tun. Das heißt, es macht es in einem anderen Thread, auf diese Weise vermeidet es, den aufrufenden Thread zu sperren, wenn der WebBrowser arbeitet. Das Problem besteht darin, dass Sie, wenn Sie etwas programmatisch mit einem Befehl modifizieren, warten müssen, bis der Befehl seine Änderungen tatsächlich beendet hat, bis Sie mit dem Ergebnis davon arbeiten können.

Überprüfen Sie meine Frage dort für ein Codebeispiel von dem, was ich tat. Ich hoffe, dass jemand meine früheren Versuche nützlich finden kann.

Verwandte Themen