@CaptureOnSuccess#

Перечисляет классы, расширяющие Captor, чьи объекты создают аттачи, когда щаг выполняется успешно.

@CaptureOnSuccess для get-step#

package org.my.pack;

import ru.tinkoff.qa.neptune.core.api.steps.SequentialGetStepSupplier;
import ru.tinkoff.qa.neptune.core.api.event.firing.annotations.CaptureOnSuccess;

//Тут следует указывать классы, чьи объекты могут получить данные 
//из R (сделать аттач из результата выполнения)
//
// Здесь можно указать несколько классов.
// Можно указать абстрактные классы,
// расширяющие Captor<R, ?>.
// Если в classpath есть их неабстрактные наследники,
// тогда они будут использованы автоматически.
//
// ВАЖНО: Наследники Captor<R, ?> не
// должны иметь объявленных конструкторов,
// или у них должны быть объявлены публичные конструкторы без параметров.
@CaptureOnSuccess(by = ExampleCaptor3.class)
public class MyGetStepSupplier<T, R, M, P>
        //любой подходящий наследник
        extends SequentialGetStepSupplier<T, R, M, P, MyGetStepSupplier<T, R, M, P>> {

    //Так же можно делать аттачи из значений нестатических полей
    //заполняемых в ходе выполнения шага
    @CaptureOnSuccess(by = {ExampleCaptor4.class})
    private V someValue;
    
    //реализация поведения
}

@CaptureOnSuccess для action-step#

package org.my.pack;

import ru.tinkoff.qa.neptune.core.api.event.firing.annotations.CaptureOnSuccess;
import ru.tinkoff.qa.neptune.core.api.steps.SequentialActionSupplier;

//Тут следует указывать классы, чьи объекты могут получить данные 
//из R (сделать аттач из значения-объекта выполнения действия)
//
// Здесь можно указать несколько классов.
// Можно указать абстрактные классы,
// расширяющие Captor<R, ?>.
// Если в classpath есть их неабстрактные наследники,
// тогда они будут использованы автоматически.
//
// ВАЖНО: Наследники Captor<R, ?> не
// должны иметь объявленных конструкторов,
// или у них должны быть объявлены публичные конструкторы без параметров.
@CaptureOnSuccess(by = ExampleCaptor3.class)
public class MyActionStepSupplier<T, R> 
    extends SequentialActionSupplier<T, R, MyActionStepSupplier<T, R>> {

    //Так же можно делать аттачи из значений нестатических полей
    //заполняемых в ходе выполнения шага
    @CaptureOnSuccess(by = {ExampleCaptor4.class})
    private V someValue;

    //реализация поведения
}