Как считать теги HTML, если у меня есть динамические изменения в этих тегах?

Я хочу подсчитать некоторые теги на этой странице Связь

Я пытаюсь подсчитать теги открытия позиций, поэтому я попробовал этот код используя java для подсчета, но я всегда нахожу, что мой счет = 0;

    public By cardsNumOfPositions = By.xpath("//div[@class='card']");
    List<WebElement> element = driver.findElements(cardsNumOfPositions);
    int countelements = element.size();

И я пишу эту функцию для подсчета: -

    public void printCountElements() {
        System.out.println(countelements);
    }

Каждый раз, когда счет равен 0, я искал iframe, но не нашел. так как я могу получить размер этого элемента?

Показать полный код, является ли countelements глобальной переменной?

Thecave3 09.04.2022 17:10

@ Thecave3 Thecave3 да, проблема была в том, что эти счетчики должны быть внутри метода, или они должны быть общедоступны другим способом. но все, что я сделал, это поместил эту строку List<WebElement> element = driver.findElements(cardsNumOfPositions); внутри метода, теперь он отлично работает, спасибо

Bishoy Ezzat 09.04.2022 18:18
Основы программирования на Java
Основы программирования на Java
Java - это высокоуровневый объектно-ориентированный язык программирования, основанный на классах.
Концепции JavaScript, которые вы должны знать как JS программист!
Концепции JavaScript, которые вы должны знать как JS программист!
JavaScript (Js) - это язык программирования, объединяющий HTML и CSS с одной из основных технологий Всемирной паутины. Более 97% веб-сайтов используют...
1
2
29
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Глядя на код, не похоже, что с ним что-то не так, если вы пытаетесь добиться подсчета количества элементов на странице, соответствующих этому xpath.

Xpath тоже выглядит хорошо, я его протестировал, и он работает. Я вижу, что на странице существуют iframe, но не похоже, что эти элементы находятся внутри этих iframe, поэтому не похоже, что потребуется переход в iframe.

Достаточно ли времени ожидания, чтобы убедиться, что эти элементы полностью загружены, прежде чем мы попытаемся их найти? Меня беспокоит, что мы пытаемся поместить эти элементы в список до того, как они загрузятся.

В противном случае я бы проверил следующее: запустил тот же тест, но на этот раз с использованием родителей (или родителей-родителей) этого элемента и проследил бы его по цепочке, чтобы увидеть, можем ли мы получить какие-либо попадания во время выполнения кода.

Проблема была со списком вне метода

Bishoy Ezzat 09.04.2022 18:16

Элемент List<WebElement> = driver.findElements(cardsNumOfPositions); Я поместил эту строку в метод, он работал нормально.

Bishoy Ezzat 09.04.2022 18:16
Ответ принят как подходящий

Также вы можете сделать countelements статической переменной.

как это:

static int countelements;

теперь, поскольку он статичен, его значение сохранится. Вы можете назвать это так:

public void printCountElements() {
    countelements = element.size();
    System.out.println(countelements);
}

Другие вопросы по теме