2008-09-08 15 views
6

Nous utilisons WatiN pour tester notre interface utilisateur, mais une page (qui malheureusement n'est pas sous le contrôle de nos équipes) prend une éternité pour terminer le chargement. Existe-t-il un moyen de faire en sorte que WatiN clique sur un lien sur la page avant que la page ne soit complètement rendue?Y at-il un moyen de rendre WatiN cliquez sur un lien avant que la page ne finisse de charger

+0

Le temps Watin attend est contrôlé par la propriété WaitForLoadTimeout. Voici un billet de blog qui en parle un peu: http://blog.agilejedi.com/2008/08/watin-installed.html

+0

Malheureusement, ce n'est pas que WatiN n'attend pas assez longtemps, c'est qu'il attend que la page se charge avant de faire quoi que ce soit. Nous avons trouvé la solution, chargez la page avec 'ClickNoWait()' Alors cherchez le lien sur la page comme d'habitude, mais appelez WaitUntilExists() 'sur le lien avant d'appeler' Click() '. De cette façon, WatiN cliquera sur le lien dès qu'il sera chargé, sans attendre que la page entière soit chargée. –

Répondre

11

Voici le code que nous avons trouvé au travail:

IE browser = new IE(....); 
browser.Button("SlowPageLoadingButton").ClickNoWait(); 
Link continueLink = browser.Link(Find.ByText("linktext")); 
continueLink.WaitUntilExists(); 
continueLink.Click(); 
+1

+1 pour répondre à votre question;) Et bonne réponse! –

0

Vous devriez être en mesure de quitter l'appel à WaitUntilExists() depuis Watin-ce à l'interne lorsque vous appelez une méthode ou une propriété sur un élément (comme le link.Click() dans votre exemple).

HTH, Jeroen van Menen plomb dev Watin

+1

Mais je n'appelle pas click, j'appelle ClickNoWait() cela ne signifie-t-il pas qu'il n'attendra pas à moins que j'appelle WaitUntilExists()? –

Questions connexes