Поиск от элемента с использованием кастомного condition child

Не находится элемент при помощи 1, 2:

#1 getButtonWithIcon("иконка").filter(child("./ancestor::div[@class='alarm']", attribute("class", "alarm")));
#2 getButtonWithIcon("иконка").filter(child("./../../../div[@class='alarm']", attribute("class", "alarm")));
#3 getButtonWithIcon("иконка").filter(child("./../../../div", attribute("class", "alarm")));
#4 getButtonWithIcon("иконка").first().$x("./ancestor::div[@class='alarm']");

1,2 варианты дают InvalidSelectorException

3,4 всё ок

в “getButtonWithIcon” используется еще один child но по XPath

<div>
    <div class="alarm">
        <button>
            <icon class="иконка">
        </button>
    </div>
    <div>
        <button>
            <icon class="иконка">
        </button>
    </div>
</div>

задача взять кнопку с иконкой которая находится в блоке alarm сама иконка не кликабельная, потому ищется через child, и там нужна точная проверка на соответствие
просто иконка с кнопкой getButtonWithIcon берется без проблем