Veröffentlicht 16. Januar 200718 j Hi Kann mir jemand sagen wie man Webformulare mit dem WebBrowser Control von vb.net 2005 autmoatisch ausfüllen lassen kann? Ich müsste wissen wie man die Werte von Textboxen, Checkboxen und Comboboxen ändern kann. Zudem müsste ich wissen wie man Buttonklicks simuliert, und man auf auf bestimmte Frames zugreift. Kann mir da jemand weiterhelfen?:confused: MfG Faultier
16. Januar 200718 j ungetestet, sollte aber funktionieren: - greif auf die eigenschaft Document von AxWebBrowser zu und hangle dich zu den einzelnen elementen im dokumentbaum durch. - liste mit getElementsByTagName("input") alle generellen eingabefelder (textboxen, checkboxen, radiobuttons, ...) auf. - mit der metode getAttribute("type") bekommst du alle arten von eingabefeldern. - dann brauchst du ja nur zu überprüfen, ob type mit dem gesuchten element übereinstimmt und - übergibst dem mit setAttribute("value", inhaltdeinescontrols) den gewünschten inhalt. - dasselbe machst du mit buttons, nur wendest du dort nach ausfüllen anderer controls die methode click() an. - setzt diesen pseudocode in die sprache deiner wahl (nicht angegeben: VB.net? C#? J#? C++/CLI? brain****?) um. s'Amstel
18. Januar 200718 j Hallo, ich habe genau dasselbe Problem. Bei mir handelt es sich um vb.net 2005. Habe im webbrowser1 ein Dokument geladen und würde gerne einen Wert in ein dort befindliches Textfeld schreiben. Definiert ist es so: <input type="text" name="Kenn" class="inputLang" size="25" maxlength="15" value="" /> Unter vb6 hätte ich einfach folgendes geschrieben: WebBrowser1.Document.Forms(0).Kenn.Value = Text1.Text das funktioniert aber unter .net nicht mehr. Was ist die Entsprechung in .net? Vielen Dank! f0x
18. Januar 200718 j Folgendes funktioniert leider nicht: WebBrowser1.Document.Forms(0).SetAttribute("Kenn", "gg")
27. Februar 200718 j Um bestimmte felder zu füllen könntest du auch folgendermaßen vorgehen For Each pElement In pForm.All If pElement.getAttribute("type") = "text" Then If pElement.Name = "username" Then pElement.InnerText = "test" ElseIf pElement.Name = "password" Then pElement.InnerText = "test" End If End If Next dann den Submit Button clicken pForm.InvokeMember("submit") Würde auch so funktionieren pElement.SetAttribute("value", "test")
3. April 200817 j hi habe diesen thread über google gefunden... ich stehe vor dem gleichen problem also ich habe shcon folgendes: (auszüge) System::Windows::Forms::HtmlDocument ^pdoc= nullptr; System::Windows::Forms::HtmlElementCollection ^elemente=nullptr; System::Windows::Forms::HtmlElement ^element=nullptr; pdoc = this->webBrowser1->Document; jetzt habe ich zu über pdoc zugriff auf den quelltext, so weit so gut. ich kann ihn ausgeben, die bilder zählen ... Aber beim finden der elemente sprich des form/ der buttons habe ich so meine probleme. meine bisherigen versuche: elemente = pdoc->GetElementsByTagName("input"); mit dem raussuchen des input elements mit GetAttribute("type") hab ich so meine probleme... wie mach ich das am besten?
11. Februar 200916 j Letzte Schwierigkeiten gibt es bei mir mit dem Submit. Ich lese mir die Felder aus, die ich verarbeiten will nur weiß ich nicht, wie ich weiter vorgehen soll. Ich habe es mit der Click Methode versucht, jedoch braucht diese einen sender und ein HtmlElementEventArgs. Das 2. habe ich nicht und weiß nicht, was ich darin verpacken soll, falls ich mir selbst eins erstelle. So sieht es momentan aus: System::Windows::Forms::HtmlElementCollection^ elems = this->webBrowser1->Document->GetElementsByTagName("input"); for each (System::Windows::Forms::HtmlElement^ elem in elems) { String^ nameStr = elem->GetAttribute("name"); String^ valueStr = elem->GetAttribute("value"); if(nameStr == "von") elem->SetAttribute("value","8:00"); else if(nameStr == "bis") elem->SetAttribute("value","16:00"); else if(valueStr == "Übernehmen") elem->Click(sender,e); } vll kann mir da ja jemand helfen. Ausserdem wäre es noch super, wenn mir jemand verraten kann, wie ich das aktuelle Datum auslese.
Archiv
Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.