2016-08-18 2 views
0

Mit einer selenium driver muss ich wissen, wann die Seite fertig geladen ist.Wie kann man wissen, wann eine Seite fertig geladen ist?

Wenn Sie zu einer neuen Seite navigieren, macht Selen das. Ich mache jedoch einen Knopfdruck und ich muss wissen, wann die nächste Seite geladen wird.

Gibt es eine Möglichkeit, etwas wie wait_for_loading_complete zu tun?

Antwort

0

Ich glaube nicht, dass Selen eingebaute Lösung zur Überprüfung der Seitenlast hat. Aber wir können eine Methode erstellen, um das gleiche zu überprüfen. Einige Beispiele sind unten, aber abhängig vom Kontext können noch viele weitere folgen.

1. Platz:

public void waitUntilPageLoaded(long timeoutSeconds) { 
    WebDriverWait wait = new WebDriverWait(driver, timeoutSeconds); 
wait.until(ExpectedConditions.presenceOfElementLocated(By.xpath("//body"))); 
} 

2.:

public void waitUntilPageLoaded(long timeoutSeconds) {  

     ExpectedCondition<Boolean> pageLoadFinishedCondition = new ExpectedCondition<Boolean>() { 
        public Boolean apply(WebDriver driver) { 
         return ((JavascriptExecutor) driver).executeScript(
           "return document.readyState").equals("complete"); 
        } 
       }; 
       WebDriverWait wait = new WebDriverWait(driver, timeoutSeconds); 
       wait.until(pageLoadFinishedCondition); 
} 

3.:

public void waitUntilPageLoaded(int timeoutSeconds, By locator) { 
     new WebDriverWait(driver, timeoutSeconds).until(ExpectedConditions.presenceOfElementLocated(locator)); 
    } 
+0

sorry ich Java-Implementierung verwendet, sollte aber leicht sein, sie zu C# konvertieren –

Verwandte Themen