рассчитать общее количество определенного элемента страницы после полной загрузки страницы (не должно быть определенной кнопки «загрузить еще») - PullRequest
0 голосов
/ 24 января 2019

У меня есть веб-страница, где пользователь выбирает фильтр для определенного веб-элемента, и на основе веб-элемента отображается количество транзакций, теперь вот что, общее количество транзакций не отображается на одной странице, есть «загрузка» кнопка «дополнительная активность», которую пользователь должен нажать, пока все страницы не будут загружены или кнопка не будет отображена для получения общего количества транзакций поэтому, как только все страницы загружены, я хочу посчитать транзакцию и проверить

любезно помогите.

//activitybutton.isdisplayed = "load more activity" button
//click activity button 
//count total no of transaction

public void validateCategoryDisplayDetails() {

    filterbutton.click();
    airline.click();
    donebutton.click();

    while(activityButton.isDisplayed())
    {
        activityButton.click();
    }

    int countxpath = transactionday.size();

    //return countxpath;
    System.out.println(countxpath);
}

1 Ответ

0 голосов
/ 24 января 2019

Похоже, transactionday, вероятно, было объявлено что-то вроде этого:

@FindBy(xpath="xpath/matching/all/transactions")
List<WebElement> transactionday;

В момент вызова PageFactory.initElements каждый из @FindBy аннотированных участников обрабатывается. Даже те, кто не аннотирован, будут пытаться найти их согласно атрибуту name, если они имеют тип WebElement. В данный момент не все транзакции загружаются на страницу, поэтому этот список заканчивается только теми, которые существуют на данный момент. Хотя эти WebElement объекты в списке могут по-прежнему отражать фактическое состояние объекта на странице, xpath не будет автоматически переоцениваться для добавления большего числа элементов в список.

Позже, когда вы убедитесь, что все элементы загружены на страницу, вам нужно снова найти транзакции. Предполагая, что у вас есть ссылка на ваш WebDriver под названием driver

int countxpath = driver.findElements(By.xpath("xpath/matching/all/transactions")).size()

Если бы вы использовали платформу, подобную SerenityBDD, вы могли бы обойтись без явной переоценки xpath, поскольку эта среда использует прокси для ленивой оценки членов экземпляров типов WebElement в самый последний возможный момент, а не когда объект страницы инициализируется.

Примечание: Если нажатие на кнопку для загрузки дополнительных результатов приводит к повторному отображению части или всей страницы, вам может потребоваться снова извлечь эту кнопку с помощью вызова driver.findElement после страница перерисована.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...