Frage von DasesColles, 84

C# Webbrowser Text in Textfeld eingeben?

Hey Leute,

ich habe folgenden HTML-Code

<input type="text" name="geld" value="0">

Ich habe die Webseite in nem Webbrowser geladen und möchte nun, dass per Button die Value auf 10 gesetzt wird. Wie kann ich das machen?

Hoffe ihr könnt mir da helfen. Danke im Voraus.

DasesColles

Antwort
von PWolff, 41

Du kannst über die Webbrowser.Document-Eigenschaft auf das Dokument und seine Bestandteile zugreifen. Wie genau das geht, solltest du in der Hilfe dazu finden. Die Syntax und die Bezeichnungen dürften ähnlich sein wie in JavaScript und HTML.

Antwort
von CrystalixXx, 25

Das WebBrowser-Control bietet dafür eine geeignete Schnittstelle über DOM oder andere Eigenschaften.

Eine Möglichkeit wäre über die Document-Eigenschaft das Element mit der entsprechenden ID (respektive Name) zu ermitteln und das Attribut neuzusetzen. Irgendwas wie:

Webbrowser.Document.getElementByTagName("input").getElementByName("geld").item(0).setAttribute("value", "10")
Antwort
von androhecker, 56

Geht nicht. C# ist die falsche Sprache dafür, du könntest höchstens ein Plugin schreiben dass mit C# interagiert, aber kleiner Nutzen hoher aufwand, du kannst das auch mit deinem Browser oder JavaScript machen.

Kommentar von DasesColles ,

Das muss gehen, denn ich könnte das machen als der <input> ein Attribut mit id hatte.

Kommentar von androhecker ,

Du musst dich schon mal klar ausdrücken, wie schon gesagt, ich würde der Seite einfach ein Script injezieren.

Kommentar von DasesColles ,

Hier mal die lange/ausführliche Version meines Vorhabens:

Vorab die Webseite gehört mir nicht!

Ich möchte eine Anwendung in C# programmieren, welche die Website in einem Webbrowser(wb) läd. Das dort befindliche Formular(Website) soll per Knopfdruck automatisch ausgefüllt werden. Eines der Felder ist im Html-Code mit id="bla" bestückt. Dort gebe ich über folgenden Code etwas ein.

HtmlDocument htmldoc = wb.Document;
htmldoc.All["bla"].InnerText = "Sample";

Nun habe ich aber das Problem, dass eines der Felder NICHT mit id bestückt ist. Nun ist meine Frage, wie kann ich genau in dieses Feld Text einfügen?

Kommentar von CrystalixXx ,

Natürlich geht das in C#, wenn man in der Anwendung eine HTML-Seite anzeigen lässt (typischerweise in einem Webbrowser-Steuerelement).

Ratschläge sind selten klug, wenn sie aus Unwissenheit rühren.

Kommentar von androhecker ,

Das liegt daran, dass die Frage nicht klar ausgedrückt war, auf StackOverflow gäbe so etwas einen Strike...

Antwort
von poldiac, 59

C#? Du meist JavaScript :)

Kommentar von DasesColles ,

Nein, ich meine schon C#. Ich habe die Website in meiner C# Anwendung geladen und möchte sozusagen automatisch das Formular auf der Webseite ausfüllen lassen und das eben per Knopfdruck.

Kommentar von CrystalixXx ,

Das ist vielleicht eine Unachtsamkeit deinerseits, aber der verlinkte Beitrag hilft da nicht weiter, denn es handelt sich dabei um ASP.NET. Das hat erstmal nichts mit WinForms zu tun (worauf der Fragesteller abzielt).

Kommentar von poldiac ,

hab nur auf die Schnelle gegoogelt - mein Fehler - danke Dir

Keine passende Antwort gefunden?

Fragen Sie die Community