Laden...

WebBrowser-Control: Button ansprechen und klicken

Erstellt von Gogeta vor 10 Jahren Letzter Beitrag vor 10 Jahren 932 Views
G
Gogeta Themenstarter:in
152 Beiträge seit 2012
vor 10 Jahren
WebBrowser-Control: Button ansprechen und klicken

Hallo,

ich habe eine GUI mit einem Webbrowser und zwei Buttons.
Button 1:


 private void button1_Click(object sender, EventArgs e)
        {
            webBrowser1.Navigate("Internetseite");

            webBrowser1.Document.GetElementById("username").InnerText = "Name";
            webBrowser1.Document.GetElementById("password").InnerText = "PW+"; 
        }

Button zwei soll dann die eingaben einnehmen, also sich anmelden.
Auf der Seite befindet sich ein Button der jedoch nicht mit GetElementById angesprochen werden kann, da keine ID hinterlegt ist.

habe es dann damit probiert:

public void ClickButton(string type) {
    var button = myWebBrowser.Document.GetElementsByTagName("button")
             .Cast<HtmlElement>()
             .FirstOrDefault(m => m.GetAttribute("type") == type);
    if (button != null)
        button.InvokeMember("click"); 
}

Hat aber auch nichts gebracht (diesen snippet habe ich von: Finding and clicking a button with no ID within html code in WebBrowser)

Dann dachte ich mir ich kann ja dem Webbrowser sagen, dass er in die Pw textbox geht und dort ein "Enter"(tastendruck) vortäuscht um die Eingaben anzunehmen.

Doch weiß ich leider nicht wie ich das machen kann.

Ich hoffe jmd kann mir helfen 😃

Lg

49.485 Beiträge seit 2005
vor 10 Jahren

Hallo Gogeta,

myWebBrowser.Document.GetElementsByTagName("button") ist schon richtig. Du musst dir aus der Liste dann nur den richtigen Button rausfischen. Dafür gibt viele Möglichkeiten, je nachdem, was noch so alles für Attribute in dem <button>-Tag stehen. Im Snippet wird davon ausgegangen, dass es ein Type-Attribut gibt. Du kannst aber auch nach der logischen Position des Button gehen. Wenn er der erste ist, also einfach auf den Index 0 in der Liste zugreifen.

Auf jeden Fall eine lösbare Aufgabe. Du bist ja nicht der erste, der vor dem Problem steht.

herbivore

S
269 Beiträge seit 2010
vor 10 Jahren

Kleine Anmerkung, da ich öfter selbst mit diesem oder ähnlichen "Problemen" zu tun habe:
Ist der Button selbst auf der gesamten Webseite nicht eindeutig, so ist er es meist innerhalb seines Blocks (also Form, Div oder Ähnlichem) ... wenn diese eindeutig identifizierbar ist, findet man dann auch den Button...

Der Gedankengang dahinter:
Man arbeitet ähnlich einem XPath und sucht sozusagen den ersten eindeutigen nicht variablen Pfad zum Button selbst 😃