Announcement

Collapse
No announcement yet.

Textfeld im Webbrowser füllen

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

  • Textfeld im Webbrowser füllen

    Hallo zusammen,
    ich möchte Textfelder einer Internetseite automatisch füllen.
    Ich habe hier ein Beispiel aus VB6. Ich habe aber keine Idee wie ich das in .Net portieren kann.
    Kann mir hier jemand wieter helfen???
    [highlight=vbnet]'Benötigte Verweise
    'Microsoft HTML Objekt Library

    Dim IEApp As Object, frage As String
    Dim i As Integer, IEDoc As Object

    Set IEApp = CreateObject("InternetExplorer.Application")
    IEApp.Visible = False
    IEApp.Navigate "https://www.google.com/accounts/Login"
    Do: Loop Until IEApp.Busy = False
    Do: Loop Until IEApp.Busy = False
    Do: Loop Until IEApp.Document.ReadyState = "complete"
    frage = InputBox("Wonach wollen Sie suchen?", "Suche bei Google")
    IEApp.Visible = True
    'Suchfeld auf der Google.com Seite heißt q , siehe Quelltext der Seite
    'IEApp.Document.getelementbyid("q").Value = frage

    IEApp.Document.getelementbyid("Email").Value = frage
    IEApp.Document.getelementbyid("passwd").Value = "Mein PWD"
    'Button Google-Suche heißt btnG usw.
    'IEApp.document.getelementbyid("btnG").Click

    Dim HTMLDoc As HTMLDocument
    Dim oHTML_Element As IHTMLElement
    Set HTMLDoc = IEApp.Document
    For Each oHTML_Element In HTMLDoc.getElementsByTagName("input")
    If oHTML_Element.Type = "submit" Then oHTML_Element.Click: Exit For
    Next
    Set IEDoc = IEApp.Document
    Do: Loop Until IEDoc.ReadyState = "complete"
    'Schleife über alle Elemente der Seite
    For i = 0 To IEDoc.All.Length - 1
    Debug.Print i & vbTab & IEDoc.All.Item(i).innertext & vbTab _
    & IEDoc.All.Item(i).nodeName
    Next i
    Set IEApp = Nothing[/highlight]
    Ich bin für jeden Tipp dankbar...

  • #2
    Die Frage in deiner Überschrift ist etwas anderes, als das Programm macht.

    Überschrift -> Du willst im Browser gerade angezeigte Felder automatisch ausfüllen
    Progamm -> kleiner HTTPClient, der die Seite abruft, die Felder durchsucht, Einträge vornimmt. Da ist nichts zu sehen von dem Suchformular
    Christian

    Comment


    • #3
      Also ich möchte schon das was ich im Programm mache...
      Ich öffne eine Webseite dort sind Felder, welche ich mit Text befüllen möchte. Dann soll die Seite übermittelt werden...

      Vielleicht habe ich tatsächlich die Überschrift etwas verwirrend deklariert.

      Ich hoffe du kannst mir trotzdem weiterhelfen...

      Comment


      • #4
        Was mir hier in diesem Forum in letzter Zeit immer wieder bei meinen Post auffällt ist, dass ich hier eigentlich keine richtige Hilfe mehr bekomme...
        ...sondern immer nur so andeutungen, nach dem Motto ich weiss was könnte es dir evtl. auch sagen, aber probier doch selbst...
        oder das die Personen, die hier Antworten es selber nicht besser wissen...
        ... das bin ich mir nicht sicher.

        Ich hab es auch ohne eure richtige Hilfe hinbekommen...
        Hier der Code :
        [highlight=vbnet] Dim uri As New Uri("http:\\google.de")

        ' Dim WebBr As New WebWebBr
        With WebBr
        .Url = uri
        .Navigate(uri)
        .Visible = True
        End With

        Do
        Application.DoEvents()
        Loop Until WebBr.IsBusy = False

        Do ' Warten bis Webseite vollständig geladen
        Application.DoEvents()
        Loop Until WebBr.ReadyState = WebBrowserReadyState.Complete 'WebWebBrReadyState.Complete

        Dim he As HtmlElement = Nothing
        Dim t As Integer = 0
        For Each elem As HtmlElement In WebBr.Document.GetElementsByTagName("input")
        'Console.WriteLine(elem.Id)
        Select Case elem.Id
        Case "lst-ib"
        elem.SetAttribute("Value", "entwickler-forum.de")
        Case Else
        End Select
        Next

        For Each elem As HtmlElement In WebBr.Document.GetElementsByTagName("input")
        ' Console.WriteLine(elem.OuterHtml.ToString)
        'If elem.Id = "btnG" Then
        If elem.GetAttribute("Type").Equals("submit") AndAlso elem.OuterHtml.Contains("onclick=this") Then
        ' MessageBox.Show("Klick /Submit wird ausgeführt")
        elem.InvokeMember("click") ' Klick ausführen
        Exit For
        End If
        'End If
        Next
        Do
        Application.DoEvents()
        Loop Until WebBr.IsBusy = False

        Windows.Forms.Cursor.Current = Cursors.Default
        'MsgBox("fertig")
        'WebBr.Dispose()
        [/highlight]

        Comment


        • #5
          Meine Rückfrage bezog sich auf eine in meinen Augen vorhandene Unklarheit. Da du nun das machen wolltest, was dein VB Code macht -> Warum muss ich nun Lust haben, das zu übersetzen? Komplett? Warum hast du nicht angefangen und ggf. nach Teilen gefragt (bsp. For each u.a.). Des Weiteren ist das wohl kein Akt von VB nach VB.NET...

          Wieviele von deinen 623 Beiträgen beinhalteten Hilfe für andere?

          Wieviel Zeit bekommen wir hier für eine Antwort? 24 Std?
          Zuletzt editiert von Christian Marquardt; 05.11.2011, 18:15.
          Christian

          Comment

          Working...
          X