In einigen meiner Projekte, um Formulare korrekt zu speichern, die der Benutzer ausführen muss, klicken Sie auf "Speichern" oder "Änderungen speichern". Dieser Klick bewirkt, dass die ganze Seite neu geladen wird (die Änderungen werden nach dem Neuladen auf der Seite sichtbar), aber wenn etwas nicht stimmt, stoppt die Validierung das erneute Laden der Seite. Ich möchte eine einfache Assertion erstellen, um zu überprüfen, ob diese Seite neu geladen wurde, wenn mein Test nicht fehlschlägt. Ich habe versucht, diesen Code zu verwenden:Gibt es eine Möglichkeit zu überprüfen, ob die Seite mit WebDriver (C#) neu geladen wurde?
public bool WasPageRefreshed(float seconds)
{
DriverLocal.Manage().Timeouts().SetPageLoadTimeout(TimeSpan.MinValue);
string getReadyState = "return document.readyState;";
for (int i = 0; i < 10; i++)
{
string readyState = GetJsExecutor().ExecuteScript(getReadyState) as string;
if (readyState != "complete")
return true;
Thread.Sleep(TimeSpan.FromMilliseconds(seconds/10));
}
DriverLocal.Manage().Timeouts().SetPageLoadTimeout(TimeSpan.FromSeconds(60));
return false;
}
ich es in Assert.True() verwenden, um zu überprüfen, ob Seite neu geladen wurde, aber es funktioniert nicht immer (ich kann es 5 mal auf der gleichen Form verwenden - 3fachen ok, 2 mal Test wird fehlschlagen). Gibt es eine Möglichkeit, es zu aktualisieren, um in 100% der Verwendung korrekt zu funktionieren? Oder gibt es eine andere Möglichkeit, um zu überprüfen, ob die Seite neu geladen wurde?
, die helfen werde nicht, wenn ich warten, wird für alle Ajax-Seite vervollständigen dann geladen und einsatzbereit. Ich muss überprüfen, ob die Seite neu geladen wird, während sie neu geladen wird. –
Ihr Fall unterscheidet sich vom Ladevorgang. Warum finden Sie kein Objekt, das nach dem "Speichern" -Button vorhanden sein sollte und es auf Assertion prüfen soll? –
Dies funktioniert nur, wenn die Webseite jQuery verwendet – nilesh