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
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.