selenium webdriver - подождите, пока карта Google загрузит все плитки

Я новичок в селене и немного застрял.
Я автоматизирую базовое приложение GWT, и мне нужно дождаться полной загрузки фрагментов карты, прежде чем переходить к следующему процессу.
Я пытаюсь найти в гугле, но безрезультатно.
Я нашел что-то вроде

public static final void waitTillPageLoad()
    {
        WebDriverWait wait = new WebDriverWait(LoginTestScript.fd, 40);
        wait.until( new Predicate<WebDriver>() {
            public boolean apply(WebDriver driver) {
                return ((JavascriptExecutor)driver).executeScript("return document.readyState").equals("complete");
            }
        }
    );
    }

но мне нужно подождать, пока фрагменты карты не загрузятся document.readyState
кто-нибудь знает, как я могу дождаться, пока все фрагменты карты не загрузятся успешно.

Спасибо.


person Pranav Patel    schedule 03.06.2017    source источник


Ответы (1)


Вы можете использовать следующий метод:

public boolean checkForPresenceOfElementByXpath(String xpath){
    try{
        new WebDriverWait(driver, 5)).until(ExpectedConditions.visibilityOfElementLocated(By.xpath("(xpath)[last()]")));
        return true;
    }catch(Exception e){
        return false;
    }
}

Удалите возвращаемый тип и возвращаемые операторы, если вы не хотите возвращать значения.

person Bala    schedule 05.06.2017
comment
что ты имеешь в виду под By.xpath("(xpath)[last()]" - person Pranav Patel; 05.06.2017
comment
(//div[@id='tiles'])[last()] - в котором [last()] идентифицирует последний тайл и ожидает его загрузки. (водитель, 5) ждет 5 секунд, можете увеличивать сколько хотите - person Bala; 06.06.2017