2010-01-21 9 views
0

Depuis le site Web Watin:Watin: MsHtmlBrowser ne TypeText

// Open a new Internet Explorer window and 
    // goto the google website. 
    IE ie = new IE("http://www.google.com"); 

    // Find the search text field and type Watin in it. 
    ie.TextField(Find.ByName("q")).TypeText("WatiN"); 

    // Click the Google search button. 
    ie.Button(Find.ByValue("Google Search")).Click(); 

    // Uncomment the following line if you want to close 
    // Internet Explorer and the console window immediately. 
    //ie.Close(); 

L'exemple ci-dessus fonctionne très bien. Toutefois, étant donné que je ne veux pas ouvrir une fenêtre de navigateur, je modifié le code ci-dessus pour utiliser MsHtmlBrowser:

 // goto the google website. 
     var ie = new MsHtmlBrowser(); 
     ie.GoTo("http://www.google.com"); 
     // Find the search text field and type Watin in it. 
     ie.TextField(Find.ByName("q")).TypeText("WatiN"); 

     // Click the Google search button. 
     ie.Button(Find.ByValue("Google Search")).Click(); 

La ligne de TypeText est de lancer une exception. Une idée de ce qui ne va pas?

+0

Quelle est l'exception? Ne trouve-t-il pas le TextField, et donc référençant un pointeur nul? –

Répondre

1

Le MsHtmlBrowser est seulement là pour trouver des éléments et lire leurs valeurs d'attribut. Il n'y a pas de support pour cliquer sur un lien, taper du texte, déclencher des événements, aucun état de session ou tout autre moyen d'interagir comme avec un navigateur normal. Donc, nous pour la mise au rebut seulement.

HTH, Jeroen

+0

Jeroen, merci pour la clarification. J'ai besoin de "taper du texte", etc. à partir d'un service web. Puis-je le faire avec les classes IE et FF? Puis-je en quelque sorte utiliser ces navigateurs pour fonctionner "sans tête"? – StackOverflowNewbie