[VB 2005] WebBrowser Controll - Mit Formulardaten Arbeiten

curzon

Mitglied
Ursprüngliche Frage war: Wie kann ich die Webseiten Elemente (<FORM> - Tags) über das WebBrowser Steuerelement automatisch vom VB.net 2005 ausfüllen lassen?


Hi all, ich bins nochmal!
Also, ich habe jetzt hingekriegt, dass ich die TextFelder ausfüllen kann und die anderen Web Objekte Manipulieren kann, mir fehlt jetzt aber der Klick auf den Button Submit. Wie realisiere ich denn das?
ich habe die Objekte unter der Variable input vom Typ: HtmlElementCollection
wo ich davor die Elemente ausfiltere die in einer Form sind.
Wie übergebe ich jetzt an das Submit-Button Element das Ereigniss Click ?

Code:
input.Item("submit").SetAttribute("xxx", "xxx")

habe gelesen, das man dies mit InvokeMember machen kann, aber ich bekomme es nicht zum laufen. Ich arbeite heute schon den ganzen Tag an dem Problem. Weis jemand die Antwort?
 
Zuletzt bearbeitet:
Habe auch dieses Problem über umwege hinbekommen, aber gibt es nicht eine schönere Variante als das:

Code:
input.Item("Submit").Focus()
SendKeys.Send("{ENTER}")
 
Also, da ich sehr lange danach gesucht habe, denke ich mal ich poste meine Lösung hier im Forum, damit dann später vielleicht jemand schneller darauf kommt.

Gibt die Anzahl der Forms auf der angezeigten Webseite an:
Code:
Dim intZahl as Integer
intZahl = Me.WeBC.Document.Forms.Count

Gibt die Namen der Forms aus auf der Angezeigten Webseite
Code:
'lblFormNamen ist als Label Element Deklariert
For schleife = 0 To WeBC.Document.Forms.Count - 1
Me.lblFormNamen.Text = Me.lblFormNamen.Text & Me.WeBC.Document.Forms.Item(schleife).Name & Global.Microsoft.VisualBasic.ChrW(13) & Global.Microsoft.VisualBasic.ChrW(10)
Next schleife

Code:
Dim input As HtmlElementCollection
input = WeBC.Document.GetElementsByTagName("input")
input.Item("vorname").SetAttribute("value", "Max")
input.Item("nachname").SetAttribute("value", "Mustermann")
input.Item("Submit").Focus()
SendKeys.Send("{ENTER}")

Hoffe diese Codeschnippsel helfen jemandem Weiter. Ich habe einen Ganzen Tag gebraucht um die Infos zusammen zu sammeln.

Währe aber noch ganz nett wenn jemand das Submit irgendwie schöner lösen könnte!
 
Hallo curzon!

Willkommen im Forum!

MSHTML Implementiert soweit ich weiß alle HTML-Steuerelemente. Daher kannst deinen Button zu HTMLButtonElementClass casten und den Klick sauber ausführen. :)

C#:
object item = m_document.all.item( "Submit", null );
HTMLButtonElementClass htmlButton = item as HTMLButtonElementClass;
if( htmlButton != null ) {
	htmlButton.click();
}
Und bitte validiere ob die Elemente überhaupt vorhanden sind, die Du dir aus dem Document holen willst. Du bekommst ansonsten eine unschöne NullReferenceException. Das kannst zB mit einer Methode erledigen die eine kategorisierte Exception wirft, sofern das Element nicht vorhanden ist.
 
Zurück