Инкапсуляция обхода деревьев UI меню: прокликивание сверху в глубь при вводном параметре - конечный элемент

В меня конечно полетят камни(или яблоки) - что это не правильно
Но собственно кто-нибудь делал построение дерева меню чтобы по чайлду прокликать его от первого родителя

Пока в стиле кисс сделал примитивные методы (слава богу, меню перебирается отдним селектором)

  private SelenideElement folder(final String FOLDER_NAME) {
        return $(byXpath(String.format("//span[@unselectable='on'][text()='%s']", FOLDER_NAME)));
    }

  public FolderTree clickFolder(final String FOLDER_NAME) {
        folder(FOLDER_NAME).shouldBe(visible, enabled).click();
        return this;
    }

  public FolderTree openTaxonomy(final String[] TREE) {
        //Elements should be from root to last level
        for (String item : TREE) {
            clickFolder(item);
            sleep(2000);
        }
        return this;
    }

Учитывая что таких путей море)
хотелось бы запухнуть все данные в струтуру и просто итерировать введя CHILD NAME.

В процессе гугления

понял что вариантов решения много.
приглянулся вот такой вариант

вроде можно быстро собрать дерево и проитерировать.

Если кто делал такие таски - поделитесь опытом какой вариант оптимальный)