Invest in people before investing in tools

Il blog di Matteo Baglini
posts - 118, comments - 95, trackbacks - 697

Cliccare via codice un button contenuto in un controllo WebBrowser

Coma facciamo a cliccare via codice un button contenuto in una pagina web caricata in un controllo WebBrowser ? La soluzione è molto semplice però, almeno per me smile_wink, non immedieta, vediamo come fare. Supponiamo di avere in una applicazipone WinFroms un controllo WebBrowser con nome webBrowser1, tramite il metodo Navigate carichiamo la pagina web al suo interno. Come prima cosa dobiamo ottenere un istanza dell'elemento Html:

   1:  HtmlElement _btn = webBrowser1.Document.GetElementById("button_id");

la proprietà Document del controllo WebBrowser restituisce un' istanza della classe HtmlDocument la quale espone una serie di metodi getter per ottenere un HtmlElement, rimando a questa pagina su MSDN per l'elenco completo dei metodi. Dato che HtmlElement è un wrapper di Internet Explorer Document Object Model (DOM) il quale è un oggetto COM dobbiamo prima ottenere il puntatore all' oggetto unmanaged:

   2:  object obj = _btn.DomElement;

ed in fine invochiamo il metodo click tramite Reflection:

   3:  System.Reflection.MethodInfo mi = obj.GetType().GetMethod("click");
   4:  mi.Invoke(obj, new object[0]);
 

Print | posted on domenica 6 gennaio 2008 13:33 | Filed Under [ .NET ]

Powered by:
Powered By Subtext Powered By ASP.NET