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
Antwort
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 für die Beantwortung Ihrer Frage;) Und gute Antwort! –
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
Aber ich rufe nicht an klicken, ich rufe ClickNoWait() bedeutet das nicht, dass es nicht warten wird, bis ich WaitUntilExists() anrufe? –
- 1. CSS - Gibt es eine Möglichkeit, das Auswahlrechteck nach dem Klicken auf einen Link loszuwerden?
- 2. Klicken auf ein Dialogfeld, bevor die Seite in den Winkelmesser geladen wird
- 3. Gibt es eine Möglichkeit, ein Windows-Formular anzuzeigen, bevor das Formular "Startup" in VB.NET geladen wird?
- 4. Gibt es eine Möglichkeit, eine Bereinigung durchzuführen, bevor die Anwendung beendet wird, wenn Sie auf "In Casting beenden" klicken?
- 5. Gibt es eine Möglichkeit RequireJS Module zu starten, bevor alle Elemente geladen sind?
- 6. Gibt es eine Möglichkeit, verschiedene CSS anzuwenden, wenn eine Seite in der Firefox-Seitenleiste geladen wird?
- 7. Müssen Sie auf dem Steuerelement zweimal dynamisch erstellten Link klicken, bevor es überhaupt etwas tut?
- 8. Gibt es eine Möglichkeit, eine CORS-Anfrage zu verzögern?
- 9. Gibt es eine Möglichkeit zu vermeiden, die Alt eines Bildes anzuzeigen, während eckig geladen wird?
- 10. Gibt es eine Möglichkeit, eine Auswahlbox zu machen Dropdown durch Klicken auf eine Schaltfläche
- 11. Gibt es eine Möglichkeit, einen bestimmten Absatz auf einer Seite ohne Anker zu verknüpfen?
- 12. Gibt es eine Möglichkeit zu verhindern, Asciidoc eine Datei Linke in einen tatsächlichen Link zu konvertieren?
- 13. Gibt es eine Möglichkeit, eine Seite nicht aktualisieren zu können?
- 14. PhantomJS klicken Sie auf einen Link auf einer Seite
- 15. Bild anzeigen, bevor die Seite neu geladen wird
- 16. Gibt es eine Möglichkeit, einen Zweig auf Heroku zu löschen
- 17. Gibt es eine Möglichkeit, eine Seite durch JavaScript zu erkennen?
- 18. Gibt es eine Möglichkeit, beim Klicken auf eine Schaltfläche kein ganzes Webformular zu senden?
- 19. Gibt es eine Möglichkeit, einen Klick auf eine Warnung in JavaScript zu simulieren?
- 20. Wenn Sie auf einen Link klicken, wird jQuery aufgerufen, anstatt zur Seite zu gehen.
- 21. Gibt es eine Möglichkeit, die Ausführung eines Prozesses zu verzögern?
- 22. Gibt es eine Möglichkeit, einen Sicherungspunkt ohne Transaktion zu erstellen?
- 23. Gibt es eine Möglichkeit, einen einzigen Link zu Google-Fonts mit Platzhalter zu haben?
- 24. Gibt es eine Möglichkeit, "träge" zu lesen?
- 25. Gibt es eine einfache Möglichkeit, einen Code TextBox zu erstellen?
- 26. Angular Controller nicht auf Link klicken klicken
- 27. Ist es möglich, einen HTML-Link zu haben, der auf eine andere HTML-Seite verweist, ohne zu klicken?
- 28. Gibt es eine Möglichkeit, einen Subprozess mit Pydev zu debuggen?
- 29. Gibt es eine einfache Möglichkeit, die Schaltfläche zu verwenden, um Seite zu navigieren, wie ein Link in angularjs
- 30. Gibt es eine Möglichkeit, einen JavaScript-Link in IE zu öffnen?
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 –
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. –