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