[.NET] Webform ausfüllen und Absenden

Dieses Thema im Forum "Programmierung & Entwicklung" wurde erstellt von MasterJulian, 5. August 2007 .

Schlagworte:
  1. 5. August 2007
    Webform ausfüllen und Absenden

    Ich versuche gerade ein programm zu schreiben, was mir hilft bei ebay zu bieten. Jedoch scheiter ich schon beim login. Die Daten werden schon eingegeben aber ich weiß nicht, wie ich diese abschicken kann. Mein Code sieht so aus:
    Code:
    Public Class Form1
    
     Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
     WebBrowser1.Navigate("https://signin.ebay.de/ws/eBayISAPI.dll?SignIn")
     End Sub
    
     Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
     WebBrowser1.Document.All("userid").SetAttribute("Value", "test")
     WebBrowser1.Document.All("pass").SetAttribute("Value", "1234")
     End Sub
    
     Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
     WebBrowser1.Document.All.Item(14).RaiseEvent("OnClick")
     End Sub
    End Classb
    Aber irgendwie will der code nicht (button2). Und so wies bei VB6 wahr (WebBrowser1.Document.Forms().submit.Click) gehts auch nicht mehr. Hab sows in net noch nicht gemacht. Hat jemand ne idee?
     
  2. 5. August 2007
    AW: Webform ausfüllen und Absenden

    N bisl OffTopic ich weiß, aber dafür gibts doch wahrlich genug progs, ich nutz esniper: a lightweight eBay sniping tool
     
  3. 5. August 2007
    AW: Webform ausfüllen und Absenden

    ja aber ich möchte ja die Programmiersprache lernen. Sonst würd ich schon n anderes Tool verwenden
     
  4. 6. August 2007
    AW: Webform ausfüllen und Absenden

    Der Webbrowser kann das afaik nicht selber. Ich habe das so gelöst, dass ich mir ein eigenes Steuerelement in C# geschrieben hab, dass von WebBrowser abgeleitet ist. Somit hab ich dann einfach meine eigene Funktion hinzugefügt.

    Das ganze basiert im Groben auf der mshtml.dll
    Mit der DLL erzeugt man ein mshtml.IHTMLElement:
    Code:
    mshtml.IHTMLElement domElement = (mshtml.IHTMLElement)element.DomElement;
    element ist hierbei vom Typ HtmlElement und ist eben der Button aus der Seite.

    Und über domElement kann man dann .click() aufrufen. Danach kommt nur noch ein Counter, der wartet, bis die Seite ausgeladen hat.

    Der gesamte Click-Code:
    Code:
     foreach (HtmlElement element in Document.All)
     {
     if (element.Name == ID || element.GetAttribute("id") == ID)
     {
     mshtml.IHTMLElement domElement = (mshtml.IHTMLElement)element.DomElement;
     domElement.click();
     }
     }
    Ich weiß jetz nich, ob du ein eigenes Control dafür bauen musst, oder das ganze extern machen kannst, aber so funktionierts.
     
  5. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.