Данные поместить в коллекцию?

174
22 октября 2021, 18:10

Подскажите как сделать перечисление элементов и найти указанный номер ? Делаю с помощью selenide.

ElementsCollection resultElements = $$(By.className("result-table"));

Сюда я поместил всю таблицу. В таблице содержатся номера ЕИС, их надо выбрать. ЕИС(31908403282), вот HTML:

        <div class="column-main__header-item">
            <h6>
                Номер ЕИС
            </h6>
            <p>
               <a href="regNumber=31908403282" class="purchase-card" 
                target="_blank">31908403282
               </a>
            </p>
        </div>
        <div class="column-main__header-item">
            <h6>Номер на площадке</h6>
            <p>4421/ЗКТЭ-РЖДС/19</p>
        </div>

Если поиск уточнить через findElement и искать по тегу:

ElementsCollection resultElements = $$(By.className("column-main__header-item")).findElement(tagName("a")).getText();

то пишет ошибку:

"cannot find symbol symbol: method findElement(org.openqa.selenium.By) location: class com.codeborne.selenide.ElementsCollection"

Answer 1

В первую очередь я хочу порекомендовать вам воспользоваться любой средой разработки, которая проверяет синтаксис вашего кода, например IntelliJ Idea.

Конкретно про возникающую у вас ошибку, метод $$ возвращает объект с типом ElementsCollection, а у него метода findElement, который вы пытаетесь вызвать, просто напросто не существует. Зато нужный вам метод есть у класса SelenideElement, хоть и называется он по другому просто find

В качестве решения могу предложить перебрать все имеющиеся элементы в коллекции и уже у них "искать по тегу"

for (SelenideElement element : resultElements) {
    element.find(/*Локатор для искомого внутреннего элемента*/).getText()
}

Ссылка на документацию Selenide, рекомендую подробно ознакомиться.

Answer 2

Проблему решил с помощью функции:

ElementsCollection headerItem = $$(".result-table .column-main__header-item > p > a"); for (SelenideElement number : headerItem) { System.out.println(number.getText()); }
READ ALSO
Ошибка при компиляции в gradlew

Ошибка при компиляции в gradlew

Всем приветЯ делаю свой Packet Hack для чита в Minecraft

267
Вывести одинаковые элементы в двух массивах без повторов

Вывести одинаковые элементы в двух массивах без повторов

Задача вывести одинаковые элементы в двух массивах, без сортировки данных массивов, без повторений чисел и использования строк, массивов...

226
Убрать из предложения гласные

Убрать из предложения гласные

Кто может написать код который убирает из предложения гласные к примеру у нас есть предложение hi my name is Nick а нужно получить h m nm s Nck

152
Ошибка при ловле исключений [закрыт]

Ошибка при ловле исключений [закрыт]

Хотите улучшить этот вопрос? Обновите вопрос так, чтобы он вписывался в тематику Stack Overflow на русском

188