Почему ElementCollection.size возвращает 0?

public void click(String name) {

        ElementsCollection elements = $$(withText(name));

        вот тут программа просто выходит из метода, по какой причине?

        for (SelenideElement e : elements) {

            if (e.isDisplayed() && e.is(Condition.enabled)) {

                e.click();

            }
        }
    }

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

1 лайк
  1. Коллекция быть пустой не может, на странице минимум 5 элементов соответствующих запросу
  2. Как минимум один из элементов имеет displayed:true и отсутствие дизейбла

Главный вопрос описан в топике: как и почему элементc коллекшн не находит элементы на странице

Пример элемента страницы в момент запуска метода image

Ну, предположим, раз вы задаёте такой вопрос, то проблема в локаторе элементов.

1 лайк

Если коллекция пустая значит не верный локатор, сначала проверьте через Chrome Dev Tools правильный ли локатор.

Локатор пишется текстом
Сам метод выглядит так

catalog.click("Заказать")

Попробуй напистаь полный локатор к этой кнопке. Если пройдёт значит проблема с локатором.

1 лайк

Да, проблема с локатором, буду думать как обойти, спасибо