2017-06-14 2 views
0

org.openqa.selenium.TimeoutException: Erwarteter Zustand fehlgeschlagen: (versucht, für 10 Sekunde (n) mit 500 Millisekunden Intervall)Warum funktioniert mein Code nicht richtig und der folgende Fehler wird angezeigt?

hier ist mein Code:

public static ExpectedCondition<Boolean> waitForTextToChange(final WebElement element, final String currentText) { 
    return new ExpectedCondition<Boolean>() { 
     @Override 
     public Boolean apply(WebDriver arg0) { 
      return !element.getText().equals(currentText); 
     } 
    }; 
} 

Einsatz code:

WebElement element = driver.findElement(...); 
String currentText = element.getText(); 
WebDriverWait wait = new WebDriverWait(driver, 10); 
wait.until(waitForTextToChange(element, currentText)); 

Antwort

0

Es ist Timeout-Fehler. Verwenden Sie versuchen, fangen, um die Ausnahme zu behandeln.

0

Die Ausführung ist fehlgeschlagen, weil der Befehl nicht rechtzeitig abgeschlossen wurde. Es könnte sein, dass Sie 1) die Zeit verlängern müssen, die Sie auf den Text warten, oder 2) vielleicht zeigt das Element, das Sie betrachten, den Text nicht so an, wie Sie es erwarten. Sie sollten debuggen und sehen, was element.getText() zurückgibt. Sie verwenden gleich, also muss der Text genau übereinstimmen. Wenn Sie Probleme mit Leerzeichen oder Groß- oder Kleinbuchstaben haben, stimmt der Text nicht überein. Es gibt eine Reihe von verschiedenen Gründen, warum dies das Timing ist. Sie sollten einen try/catch hinzufügen und mit Haltepunkten debuggen, um zu sehen, was genau in Ihrem Code vor sich geht.

Verwandte Themen