Не находится элемент при помощи 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
берется без проблем