2016-08-18 5 views
0

Используя selenium driver, мне нужно знать, когда страница будет загружена.Как узнать, когда страница будет загружена?

Когда вы переходите на новую страницу, селен делает это. Тем не менее, я нажимаю кнопку, и мне нужно знать, когда будет загружена следующая страница.

Есть ли способ сделать что-то вроде wait_for_loading_complete?

ответ

0

Не думаю, что у selenium есть встроенное решение для проверки загрузки страницы. Но мы можем построить метод для проверки того же. Ниже приведены некоторые примеры, но в зависимости от контекста может быть гораздо больше.

первый:

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

второй:

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); 
} 

третий:

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

жаль, что я использовал реализацию Java, но должно быть легко преобразовать их в C# –

Смежные вопросы