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 :
VbDim 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)
VbDim 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)
VbDim url As String = HtmlElement1.GetAttribute("src")
C#
String url = HtmlElement1.GetAttribute("src");
4) Déclencher l’évent OnClick d’un élément
VbHtmlElement1.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)
VbDim 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 ;).
