Похоже, 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
после страница перерисована.