Announcement

Collapse
No announcement yet.

Login Probleme mit Webbrowser(Button click)

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Login Probleme mit Webbrowser(Button click)

    Guten abend zusammen.

    Ich möchte mich auf der Webpage http://108.hosttech.ch/user/index.php einloggen über
    den webbrowser. Dies ist normalerweise kein Problem doch ich schaffe es nicht, den Login Button automatisch auszuführen/Clicken

    Bisher habe ich dies;

    Code:
    WebBrowser1.Document.All("username").SetAttribute("value", "***********")
            WebBrowser1.Document.All("password").SetAttribute("value", "************")
            WebBrowser1.Document.GetElementById("??Name??").InvokeMember("click")

    Danke für die Hilfe

  • #2
    Hallo,

    ich denke nicht dass das über GetElementByID geht. Die betroffe Zeile schaut wie folgt aus (HTML-Quelle):
    HTML Code:
    <td  background="/skins/skin_1/pics/buttons/bt_img_middle.jpg"><a href="#" onclick="javascript:document.forms['loginform'].submit(); return false" class="button-1">Einloggen</a></td>
    So wie ich das sehe wird beim Klick auf "Einloggen" die JavaScript-Methode "submint" auf "document.forms['loginform']" ausgeführt.

    D.h. es muss im Webbrowser-Control die Javascript-Methode aufgerufen werden. Wie das im konkreten Fall geht weiß ich nicht - vielleicht nützen dir die Infos in Calling JavaScript functions in the Web Browser Control


    mfG Gü
    "Any fool can write code that a computer can understand. Good programmers write code that humans can understand". - Martin Fowler

    Comment


    • #3
      danke dir.

      Ja :/ nicht gerade mein Ding...

      Habe es bereits über 100 Googletreffer versucht, doch leider ohne Erfolg...

      Wenn du jemand kennst, der dieses Problem lösen könnte wäre ich dir sehr dankbar und würde
      dir meine Dankbarkeit auch zeigen(Wie,was können wir noch via pn aushandeln)

      MfG

      Phipu

      //edit:
      Man könnte doch "einfach" ein Cookie losschicken oder nicht? Jedoch verstehe ich von dem noch weniger :S

      MfG

      PHIPU

      Comment


      • #4
        Hallo,

        so nun hab ich mal geschaut - da ich kein HTML-Experte bin - was
        HTML Code:
        <a href="#" onclick="javascript:document.forms['loginform'].submit(); return false"
        so macht und dann festgestellt dass das mehr oder weniger ein normaler Skriptaufruf ist und somit ist (für mich) das Problem lösbar.

        [highlight=c#]
        private void loginButton_Click(object sender, EventArgs e)
        {
        HtmlDocument doc = webBrowser1.Document;

        // Username und Password setzen:
        doc.GetElementById("username").InnerText = "gfoidl";
        doc.GetElementById("password").InnerText = "myPassword";

        // Einloggen klicken:
        doc.Forms["loginform"].InvokeMember("submit");
        }
        [/highlight]
        Der Code ist zwar in C# sollte jedoch kein Problem darstellen.
        Zuerst werden die Anmeldedaten eingegeben und dann das Formular geholt welches Submited werden soll. Bei mir funktionierts - die Anmeldung ergibt halt "Ungültiger Benutzername und Passwort" da ich nicht registiert bin


        und würde
        dir meine Dankbarkeit auch zeigen(Wie,was können wir noch via pn aushandeln)
        Ist für den geringen Aufwand und da ich selbst dabei was gelernt habe nicht nötig. Sonst eigentlich auch nicht. Würde es mir zu viel Aufwand sein dann würde ich das nicht machen - außer die bezahlst (aber das wird teuer).
        Du kannst ein Bier auf mich trinken (-> Beerware).


        mfG Gü
        "Any fool can write code that a computer can understand. Good programmers write code that humans can understand". - Martin Fowler

        Comment


        • #5
          Problem gelöst

          [highlight=vbnet]Public Class Form1

          Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

          WebBrowser1.Navigate("http://108.hosttech.ch/user/index.php")

          End Sub


          Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click


          WebBrowser1.Document.All.GetElementsByName("userna me")(0).SetAttribute("value", "username")

          WebBrowser1.Document.All.GetElementsByName("passwo rd")(0).SetAttribute("value", "password")


          For Each element As HtmlElement In WebBrowser1.Document.GetElementsByTagName("a")

          If element.GetAttribute("className") = "button-1" Then

          element.InvokeMember("click")

          Return

          End If

          Next

          End Sub

          End Class[/highlight]
          Zuletzt editiert von gfoidl; 10.07.2010, 12:26. Reason: Code formatiert

          Comment


          • #6
            Hallo,

            ich finde den obigen Weg (meinen) einfacher - der kommt ohne Schleifen aus
            Es kann ja direkt auf das Element zugegriffen werden.


            mfG Gü
            "Any fool can write code that a computer can understand. Good programmers write code that humans can understand". - Martin Fowler

            Comment

            Working...
            X