Как заставить селен 3.4.0 ждать загрузки страницы? - PullRequest
0 голосов
/ 28 мая 2018

Я использую веб-драйвер селена 3.4.0, чтобы найти время отклика веб-сайта. В более ранней версии я использовал WebDriver wait = new WebDriverWait (driver, 10);wait.until (ExpectedConditions.visibilityOfElementLocated (By.id ( "MyID")));чтобы найти загруженную страницу.

Но эти две строки кода не работают для версии 3.4.0.Есть ли другой способ рассчитать время загрузки страницы?Или подождать, пока страница загрузится?Также мне нужно определить модальное диалоговое окно, которое будет загружаться по нажатию кнопки.Я использую динамический веб-проект в Eclipse IDE.

Мне также нужно немного подождать, пока какое-нибудь событие щелчка не завершит загрузку элемента Dom.Wait.until () не работает для селена 3.4.0.как заставить селен подождать, пока какой-нибудь элемент не станет видимым?

1 Ответ

0 голосов
/ 29 мая 2018

Вы можете использовать JavascriptExecutor, чтобы получить состояние готовности страницы и передать его как ожидаемое условие в wait.until ()

Вот код ссылки для этого,

ExpectedCondition<Boolean> expectation = new
            ExpectedCondition<Boolean>() {
        public Boolean apply(WebDriver driver) {
            return ((JavascriptExecutor) driver).executeScript("return document.readyState").toString().equals("complete");
        }
    };
    try {
        Thread.sleep(1000);
        WebDriverWait wait = new WebDriverWait(LocalDriverManager.getDriver(), 30);
        wait.until(expectation);
    } catch (Throwable error) {
        Assert.fail("Timeout waiting for Page Load Request to complete.");
    }
...