Controler le webbrowser et identifier les liens par leur numero d'item

Description

Ce petit code source fait avec visual basic 2008 est en premier lieu un bon rappel de comment controler le webbrowser : remplir les champs et appuyer sur un bouton ou un lien. Ensuite il permet d'identifier rapidement les lien/bouton par leur Tagname, leur id, leur name ou si il manque tout leur numero d'item. Enfin il met le lien en rouge por bien le visualiser sur la page web. Tout est bien expliquer dans la source et je réponds aux questions

Source / Exemple :


Public Class Form1
    Inherits System.Windows.Forms.Form
    'i pointera le numero de l'item
    Dim i As Integer = 0
    'collec recevra l'ensemble des htmlelement du document
    Dim collec As HtmlElementCollection

    Private Sub WebBrowser1_DocumentCompleted(ByVal eventSender As System.Object, ByVal eventArgs As System.Windows.Forms.WebBrowserDocumentCompletedEventArgs) Handles WebBrowser1.DocumentCompleted
        'collec recoit les htmlelement de la page web à la fin du chargement de celle ci
        collec = WebBrowser1.Document.All
    End Sub

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        'correspond au bouton go : on lance la navigation du webbrowser avec l'adresse situé dans textbox1
        WebBrowser1.Navigate(TextBox1.Text)
    End Sub

    Private Sub remplirlestextbox()
        'cette procedure rempli les différents champs avec les principal propriété du htmlelement pointé
        Dim element As HtmlElement
        element = collec.Item(i)
        'son id le fichier pourra etre accéder par getelementbyid
        TextBox3.Text = element.Id
        'son Name le fichier pourra etre accéder par getelementbyname
        TextBox5.Text = element.Name
        'son TagName le fichier pourra etre accéder par getelementbyTagname
        TextBox7.Text = element.TagName
        'son numero d'item (à la brutal ;-) pourra etre accéder par All.item(i)
        TextBox4.Text = i
        'l adresse associée pour les lien html : on peut recuperer ainsi src.....
        TextBox6.Text = element.GetAttribute("href")
        'on le met en rouge sur l'ecran pour l'identifier facilement
        WebBrowser1.Document.DomDocument.All.Item(i).style.backgroundcolor = "red"
    End Sub

    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        'le bouton suivant
        'on remet le lien en blanc : j'ai pas réussi a le remettre comme initial : avis aux amateurs je susi preneur
        WebBrowser1.Document.DomDocument.All.Item(i).style.backgroundcolor = "white"
        'on diminu i sauf si on est au debut
        If i = 0 Then i = collec.Count - 1 Else i = i - 1
        remplirlestextbox()
    End Sub

    Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
        'le bouton précédent
        'idem
        WebBrowser1.Document.DomDocument.All.Item(i).style.backgroundcolor = "white"
        'l'inverse
        If i = collec.Count - 1 Then i = 0 Else i = i + 1
        remplirlestextbox()
    End Sub

    Private Sub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button5.Click
        WebBrowser1.Document.DomDocument.All.Item(i).Value = TextBox2.Text
        'l'instruction qu'il va falloir recopier dans votre code pour remplir le textbox (en remplacant evidemment i par le numero
    End Sub

    Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
        WebBrowser1.Document.All.Item(i).InvokeMember("click")
        'l'instruction qu'il va falloir recopier dans votre code pour cliquer (en remplacant evidemment i par le numero
        i = 0
    End Sub

End Class

Conclusion :


Une petite aide trés utile pour automatiser la navigation

Codes Sources

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.