2009-10-08 9 views
0

J'ai ouvert un site Web en utilisant WebBrowser. Maintenant, je voudrais cliquer par programme sur le champ de texte d'entrée (zone de texte). Je ne peux pas utiliser la mise parce que ce site utilise JS pour déverrouiller ce champ que si on clique dessus et je l'ai également essayé ceci:Comment faire pour cliquer par programmation sur la saisie de texte dans WebBrowser en utilisant C#

Object obj = ele.DomElement; 
System.Reflection.MethodInfo mi = obj.GetType().GetMethod("click"); 
mi.Invoke(obj, new object[0]); 

Mais il retourne mi = null. Comment faire cela pour que ça marche?

Répondre

2

Très similaire à ma réponse sur your other question. Obtenez un HtmlElement représentatif de votre zone de texte et appelez HtmlElement.InvokeMember ("cliquez") dessus.

+0

Je n'ai pas InvokeMethod seulement InvokeMember est-ce? –

+0

Oui, j'ai mal tapé. Ma faute... –

0

Utilisez InvokeMethhod sur la fonction HtmlElement ou Browser.InvokeScript.

1

Si vous le pouvez, utilisez:

webbrowser1.Navigate("javascript:document.forms[0].submit()") 

ou quelque chose de similaire. Pour moi, ça a été beaucoup plus facile et plus précis.

1

pour remplir un champ de texte sur une page Web:

string code =""; 
code = code + "var MyVar=document.getElementById('tbxFieldNameOnWebPage');if(MyVar != null) MyVar.value = 'SOMEVALUE';"; 
domDocument.parentWindow.execScript(code, "JScript"); 

Then To Click a button on a webpage: 

code = ""; 
code = "var SignupFree = document.getElementsByTagName('button')[1];"; 
code = (code + " SignupFree.click();"); 
domDocument.parentWindow.execScript(code, "JScript"); 

vous pouvez également utiliser document.getElementById('buttonID'); au lieu de document.getElementsByTagName('button')[1]; mais un identifiant doit être prévu pour ce bouton sur cette page web particulière.

Questions connexes