2010-09-27 3 views
2

Pourquoi la méthode HtmlElementGetAttribute() renvoie mshtml.HTMLInputElementClass au lieu de la valeur de l'attribut, lorsque j'essaie d'obtenir la valeur de l'attribut action d'un formulaire?Pourquoi la méthode GetAttribute() de HtmlElement renvoie-t-elle "mshtml.HTMLInputElementClass" au lieu de la valeur de l'attribut?

HtmlElementCollection elements = webBrowser1.Document.Forms; 
    foreach (HtmlElement element in elements) 
     MessageBox.Show(element.GetAttribute("action") + ""); 
+0

Pas repro. Publiez le code HTML qui affiche le formulaire. –

+0

Exemple qui fonctionne: http://www.w3schools.com/TAGS/tryit.asp?filename=tryhtml_form_submit –

+0

http://amazines.com/member_login.cfm – luvieere

Répondre

3

Il semble s'agir d'un bug d'IE.

Voici une solution: ajouter une référence à Microsoft.mshtml, puis:

if(element.GetAttribute("action").Equals("mshtml.HTMLInputElementClass")) 
{ 
    mshtml.IHTMLFormElement iForm = (mshtml.IHTMLFormElement)element.DomElement; 
    string action = iForm.action; 
} 

Hope this aide :)

+0

Merci, ça a fait le travail! – luvieere