Magazine Internet

[Vb/C#] Astuces pour contrôler une page via WebBrowser

Publié le 08 juin 2009 par Jeremy.jeanson

Via Winform on dispose d’un control bien pratique pour visualiser une page web, j’ai nommé le WebBrowser. Outre le fait de pouvoir afficher une page celui-ci peut aussi s’averer fort pratique pour piloter un page : remplir un formulaire, déclencher un click sur un bouton etc …

Aillant eu à l’utiliser pour un petit projet personnel, voici quelque astuce qui vous permetrons de gagner du temps et d’atteindre directement vos objectifs ;)

1) Retrouver tout élément utilisant une classe de la css :

Vb
Dim elements As HtmlElement() = (From c In Me.WebBrowser1.Document.All _
	.Cast(Of HtmlElement)() _
	Where "MaClass".Equals(c.GetAttribute("className"), StringComparison.InvariantCultureIgnoreCase) _ 
	Select c).ToArray()
C#
HtmlElement[] elements = WebBrowser1.Document.All
	.Cast<HtmlElement>()
	.Where(c => "MaClass".Equals(c.GetAttribute("className"), StringComparison.InvariantCultureIgnoreCase))
	.ToArray();

2) Retrouver tout élément d’un type (exemple image : img)

Vb
Dim elements As HtmlElement() = (From c In Me.WebBrowser1.Document.All _
	.Cast(Of HtmlElement)() _
	Where "img".Equals(cc.TagName,StringComparison.InvariantCultureIgnoreCase) _ 
	Select c).ToArray()
C#
HtmlElement[] elements = WebBrowser1.Document.All
	.Cast<HtmlElement>()
	.Where(c => "img".Equals(cc.TagName,StringComparison.InvariantCultureIgnoreCase))
	.ToArray();

3) Retrouver l’attribut d’un élément (par exemple url d’une image : src)

Vb
Dim url As String = HtmlElement1.GetAttribute("src")
C#
String url = HtmlElement1.GetAttribute("src");

4) Déclencher l’évent OnClick d’un élément

Vb
HtmlElement1.RaiseEvent("onclick")
C#
HtmlElement1.RaiseEvent("onclick");

5) Remplir des zones de saisie et valider le bouton envoi (utilisation des id des controls pour les retrouver)

Vb
Dim document As HtmlDocument = this.WebBrowser1.Document
document.GetElementById("username").SetAttribute("value", "La valeur de mon Login")
document.GetElementById("password").SetAttribute("value", "La valeur de mon password")
document.GetElementById("SubmitCreds").InvokeMember("click")
C#
HtmlDocument document = this.WebBrowser1.Document;
document.GetElementById("username").SetAttribute("value", "La valeur de mon Login");
document.GetElementById("password").SetAttribute("value", "La valeur de mon password");
document.GetElementById("SubmitCreds").InvokeMember("click");

Et voila, avec cela on peut presque tout faire ;).


Retour à La Une de Logo Paperblog

A propos de l’auteur


Jeremy.jeanson 1573 partages Voir son profil
Voir son blog

l'auteur n'a pas encore renseigné son compte l'auteur n'a pas encore renseigné son compte l'auteur n'a pas encore renseigné son compte

Dossiers Paperblog