Mein Test sendet Formular und überprüft den Nachrichtenstatus. Aber wenn dieser Zustand ist erfrischend, aus den „neuen“ bis „gesendet“, von „gesendet“ auf „empfangen“ und Selen Kontrollen für das Element, erhalte ich die Fehlermeldung:Element nicht im Cache gefunden ... Wie kann ich damit umgehen, wenn ich nicht weiß, ob Element verfügbar ist, wenn ich es überprüfe? C# webdriver
element not found in the cache
Vielleicht ist die Seite, da es geändert wurde nachgeschlagen. Wie kann ich mit dieser Situation umgehen?
Der Code, den ich jetzt habe:
Driver.FindElement(By.CssSelector("button[value=Send]")).Click();
wait.Until(x => x.FindElement(By.Id("messageState")));
string state1 = Driver.FindElement(By.Id("messageState")).Text;
while (state1 == "New")
{
wait.Until(x => x.FindElement(By.Id("messageState")));
state1 = Driver.FindElement(By.Id("messageState")).Text;
Thread.Sleep(3000);
}
wait.Until(x => x.FindElement(By.Id("messageState")));
string state2 = Driver.FindElement(By.Id("messageState")).Text;
while (state2 == "Sent")
{
wait.Until(x => x.FindElement(By.Id("messageState")));
state2 = Driver.FindElement(By.Id("messageState")).Text; //Error line
Thread.Sleep(3000);
}
wait.Until(x => x.FindElement(By.Id("messageState")));
string state3 = Driver.FindElement(By.Id("messageState")).Text;
Assert.IsTrue(state3.Contains("Received"));