Zum Inhalt springen

WebBrowser-Controll - Automatisch WebFormulare ausfüllen


Faultier

Empfohlene Beiträge

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

  • 1 Monat später...

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")

Link zu diesem Kommentar
Auf anderen Seiten teilen

  • 1 Jahr später...

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?

Link zu diesem Kommentar
Auf anderen Seiten teilen

  • 10 Monate später...

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.

Link zu diesem Kommentar
Auf anderen Seiten teilen

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.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...