htmlelements icon indicating copy to clipboard operation
htmlelements copied to clipboard

Ошибки при вызове методов один за другим

Open nlobach opened this issue 8 years ago • 0 comments

tableData().rows()
        .filter(row -> row.cell(1).getText().contains(product))
        .convert(row -> row.cell(8).getText().trim())
        .should(hasItem("Zuordnungen Serienausstattung"));

Кидает class cast exception так как методы фильтр и конверт выполняются в произвольной последовательности, хотя последовательность в данном случае важна. Последовательность не соблюдается в классе WebBlockMethodHandler

for (TargetModifier<Object> modifier : getContext().getRegistry().getExtensions(TargetModifier.class)) {
    target = modifier.modify(getContext(), target);
}

когда из getExtensions может вернуться сначала convert, а потом filter. convert дает нам строки, а фильтр ожидает элемент row, что и приводит к ошибке. Хорошо бы соблюдать последовательность вызовов. Более того, два фильтра подряд в такой лоике тоже не получится вызвать, один другой затрет.

nlobach avatar Aug 28 '17 15:08 nlobach