my code stock.com

Dragonblf

Steuerelemente in Web-Formularen auslesen
by Dragonblf

Wenn von VB Programmen aus Web-Formulare automatisch ausgefüllt werden sollen, die nicht selber programmiert wurden, stellt sich das Problem, dass die Namen und Datentypen des jeweiligen Formularfeldes mühsam aus dem HTML-Code ermittelt werden müssen.
——————————————————————————————————————————————————————————————————————————————————————-

Hier nun ein Tipp, mit dem dieses recht einfach geht:
Wir benötigen eine Oberfläche mit einem Button "URL_Laden", ein Text- oder Combo-Steuerelement, um die Web-Adresse einzugeben sowie ein WebBrowser Steuerelement. Dieser Konstrukt hat den Vorteil, dads über das Web-Steuerelement zum gesuchten Formular navigiert werden kann.

Erstellen Sie ein neues Windows.Forms Projekt und platzieren folgende Steuerelemente auf das Formular:

ComboBox (cmbURL)
Button (cmdAnzeigen)
WebBrowser (WebBrowser1)
TextBox (txtFormCount)
Button (Button1)
Multiline-TextBox (txtSteuerElemente)
Beim Klick auf den Button "cmdAnzeigen" soll zunächst die HTML-Seite geladen und die Anzahl der darin enthaltenen Formulare ermittelt werden:

Snippet options

Download: Download snippet as steuerelemente-in-web-formularen-auslesen.vbs.
Copy snippet: For this you need a free my code stock.com account.
Embed code : You will find the embed code for this snippet at the end of the page, if you want to embed it into a website or a blog!

Public Class Form1
 
  Private bLoaded As Boolean = False
  Private Sub cmdAnzeigen_Click(ByVal sender As System.Object, _
    ByVal e As System.EventArgs) Handles cmdAnzeigen.Click
 
    ' Anmelde-Seite laden
    bLoaded = False
    If Me.cmbURL.Text = "" Then Exit Sub
 
    WebBrowser1.Navigate(Me.cmbURL.Text)
 
    ' Warten, bis Webseite vollständig geladen wurde
    Do While Not bLoaded
      System.Windows.Forms.Application.DoEvents()
    Loop
  End Sub
  Private Sub WebBrowser1_DocumentCompleted(ByVal eventSender As System.Object, _
    ByVal eventArgs As System.Windows.Forms.WebBrowserDocumentCompletedEventArgs) _
    Handles WebBrowser1.DocumentCompleted
 
    Me.txtFormCount.Text = (WebBrowser1.Document.Forms.Count)
 
    ' *********************************************************
    ' Webseite wurde vollständig geladen
    ' Diese Sub wird nach dem Laden von jedem Frame ausgelöst. 
    ' Frage wann der letzte Frame geladen wurde
    ' Durch die If Abfrage
    ' *********************************************************
    bLoaded = True
  End Sub
  
'''Der eigentliche Anzeige-Teil besteht aus einem Button mit dem die Procedure "procElementeAnzeigen" gestartet '''wird. Für das Ergebnis wird ein MutliLine-Text-Steuerelement benötigt. Wenn das Web-Steuerelement die richtige '''Seite anzeigt, wird mit dem Command-Button die Procedure gestartet. Dieser fragt alle Sub-Formulare der Seite '''ab und listet die Steuerelement auf.

  Private Sub Button1_Click(ByVal sender As System.Object, _
    ByVal e As System.EventArgs) Handles Button1.Click
 
    ' alle Elemente anzeigen
    procElementeAnzeigen()
  End Sub
  Public Sub procElementeAnzeigen()
    On Error Resume Next
 
    Dim AnzahlForm As Short
    Dim i As Int16
    Dim AnzahlElemente As Int16
    Dim y As Int16
    Dim Element As String
 
    Me.txtSteuerElemente.Clear()
 
    AnzahlForm = WebBrowser1.Document.Forms.Count
    For i = 0 To AnzahlForm - 1
      With WebBrowser1.Document.Forms(i)
        AnzahlElemente = .GetElementsByTagName("Input").Count
        Me.txtSteuerElemente.AppendText(vbCrLf & "Name Form: " & .Name)
 
        For y = 0 To AnzahlElemente - 1
          With .GetElementsByTagName("Input").Item(y)
            Element = "Name: " & .GetAttribute("name") & _
              "; Typ: " & .GetAttribute("type") & _
              "; Value: " & .GetAttribute("value") & _
              "; Checked: " & .GetAttribute("checked") & _
              "; onClick: " & .GetAttribute("onclick")
          End With
 
          Me.txtSteuerElemente.AppendText(vbCrLf & Element)
        Next y
      End With
    Next i
  End Sub
End Class

Create a free my code stock.com account now.

my code stok.com is a free service, which allows you to save and manage code snippes of any kind and programming language. We provide many advantages for your daily work with code-snippets, also for your teamwork. Give it a try!

Find out more and register now

You can customize the height of iFrame-Codes as needed! You can find more infos in our API Reference for iframe Embeds.