Коллеги, всем привет! Столкнулся со следующей проблемой: есть веб-приложение, в нем необходимо кликнуть в календарь. Откроется календарь с месяцами. Текущий месяц активный, выделен. Мне бы хотелось сделать такой тест, чтобы при открытии календаря, производился клик в следующий месяц (идущий за текущим). И так по кругу (в цикле), т.е., если сейчас Июнь - клик в Июль, Декабрь - клик в Январь и т.д. Сейчас метод имеет такой вид и клик производится всегда в первый элемент - Январь:
public CalendarPage chooseNewMonth() { $(new By.ByCssSelector("div.datepicker-months")).shouldBe(Condition.visible); ElementsCollection m = $(new By.ByCssSelector("div.datepicker-months span")); List<ElementsCollection> months = new ArrayList<>(); months.add(m); for (ElementsCollection element : months) { for (int i = 0; i < element.size(); i++) { $(new By.ByCssSelector("div.datepicker-months span")).click(); } } return this; }
В методе я нахожу коллекцию элементов, добавляю их в список и далее нужен цикл, даже скорее два цикла. Не могу понять как сравнивать i-е элементы с активным (текущим) месяцем, чтобы кликнуть в следующий. Самое простое это просто передавать параметр индекса нужного месяца, но тогда придется каждый месяц менять тест. Все месяцы вложены в таблицу и имеют вид <span class="month">Фев</span>, за исключением активного месяца <span class="month focused active">Июн</span>