Faultier Geschrieben 16. Januar 2007 Geschrieben 16. Januar 2007 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 Zitieren
Amstelchen Geschrieben 16. Januar 2007 Geschrieben 16. Januar 2007 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 Zitieren
foxm2k Geschrieben 18. Januar 2007 Geschrieben 18. Januar 2007 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 Zitieren
foxm2k Geschrieben 18. Januar 2007 Geschrieben 18. Januar 2007 Folgendes funktioniert leider nicht: WebBrowser1.Document.Forms(0).SetAttribute("Kenn", "gg") Zitieren
testman Geschrieben 27. Februar 2007 Geschrieben 27. Februar 2007 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") Zitieren
joscha Geschrieben 3. April 2008 Geschrieben 3. April 2008 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? Zitieren
Shadowman Geschrieben 11. Februar 2009 Geschrieben 11. Februar 2009 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. Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.