6 Stimmen

Windows Forms WebBrowser-Steuerelement und iframes

Ich versuche, ein Stück Software zu erstellen, um mehr oder weniger automatisiert Formularausfüllungen auf einer Webseite - und ich habe beschlossen, die WebBrowser-Steuerelement in verwenden System.Windows.Forms . Das funktioniert prima, und ich kann die Daten leicht manipulieren. DOM über webbrowser.Document und so weiter. Doch leider die Website, die ich tue Automatisierung auf hat eine Datei hochladen, die innerhalb eines Iframe ausgeführt wird - und das ist, wo ich stecken, ich kann einfach nicht herausfinden, wie man in der Lage, Elemente innerhalb des DOM des Iframe zu manipulieren.

Im Idealfall würde ich gerne etwas wie folgt machen:

HtmlElement iframe = browser.Document.GetElementById("iframe_id");
iframe.InnerDocument.GetElementById("file_upload_input").SetAttribute("value", "myfile.txt");

Und dann natürlich das Formular innerhalb des iframe abschicken - allerdings gibt es keine InnerDocument Attribut an HtmlElement Soweit ich sehen kann, gibt es auch keinen Typ, den ich gefunden habe, den ich werfen kann. HtmlElement zu, so dass ich auf das innere DOM zugreifen kann.

Wie wird das gemacht?

8voto

David Punkte 33347

Versuchen Sie stattdessen, die Sammlung "Rahmen" zu verwenden. Von MSDN :

Das iframe-Element funktioniert wie ein Dokument innerhalb eines Dokuments, oder wie ein schwebender Rahmen. Die frames-Sammlung ermöglicht den Zugriff auf den Inhalt eines iframe. Verwenden Sie die Rahmensammlung, um Elemente zu lesen oder zu schreiben, die in einem einem iframe. Zum Beispiel ist die Syntax für den Zugriff auf den Stil backgroundColor des des body-Objekts in einem iframe lautet:

sColor = document.frames("sFrameName").document.body.style.backgroundColor;

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X