2008-09-08 12 views
6

Wir verwenden WatiN zum Testen unserer Benutzeroberfläche, aber eine Seite (die leider nicht unter unserer Steuerung steht) dauert ewig, um das Laden zu beenden. Gibt es eine Möglichkeit, WatiN dazu zu bringen, auf einen Link auf der Seite zu klicken, bevor die Seite vollständig gerendert wurde?Gibt es eine Möglichkeit, WatiN auf einen Link zu klicken, bevor die Seite geladen wird

+0

Die Zeit Watin wird durch die WaitForLoadTimeout Eigenschaft gesteuert wartet. Hier ist ein Blog-Beitrag, der ein wenig darüber spricht: http://blog.agilejedi.com/2008/08/watin-installed.html

+0

Leider ist es nicht so, dass WatiN nicht lange genug wartet, sondern dass es wartet, bis die Seite geladen wird, bevor es etwas tut. Wir haben die Lösung gefunden, laden die Seite mit 'ClickNoWait()' Dann suchen Sie wie gewohnt den Link auf der Seite, rufen aber 'WaitUntilExists()' auf dem Link auf, bevor Sie 'Click()' aufrufen. Auf diese Weise wird WatiN auf den Link klicken, sobald es geladen ist, und nicht warten, bis die ganze Seite geladen ist. –

Antwort

11

Hier ist der Code, den wir zur Arbeit gefunden:

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

+1 für die Beantwortung Ihrer Frage;) Und gute Antwort! –

0

Sie sollten den Aufruf WaitUntilExists auszulassen können(), da WatiN dies intern tut, wenn Sie eine Methode oder Eigenschaft auf ein Element nennen (wie die link.Click() in Ihnen rexample).

HTH, Jeroen van Menen Blei dev WatiN

+1

Aber ich rufe nicht an klicken, ich rufe ClickNoWait() bedeutet das nicht, dass es nicht warten wird, bis ich WaitUntilExists() anrufe? –

Verwandte Themen