Сценарий Serenity BDD проверяет несколько текстовых элементов на веб-странице

Как проверить несколько текстовых элементов и ссылок в bdd с помощью Serenity BDD?

Я использую приведенный ниже код, но, используя этот подход, я должен написать одну и ту же копию кода для каждого элемента на веб-странице, что отнимает много времени, есть ли какой-либо альтернативный способ параметризации и проверки значений

private static final String APIBUILDER = "app-data-api-card  .card-header";

    @Subject("the displayed notebook")
    public static class APIBUILDER implements Question<String> {
        @Override

        public String answeredBy(Actor actor) {
            return BrowseTheWeb.as(actor).findBy(APIBUILDER).getText();
        }


        public static Question<String> value() { return new APIBUILDER(); }

person testerBDD    schedule 24.04.2021    source источник


Ответы (1)


Вы можете использовать библиотеку Убедитесь,

static By FIRST_NAME_FIELD = By.id("first_name");
static By LAST_NAME_FIELD = By.id("last_name");

actor.attemptsTo(
    Ensure.that(FIRST_NAME_FIELD).text().isEqualTo("Foo")
    Ensure.that(LAST_NAME_FIELD).text().isEqualTo("Bar")
);

Если вам нужны мягкие утверждения, вы также можете сделать это:

    Ensure.enableSoftAssertions();
    actor.attemptsTo(
        Ensure.that(FIRST_NAME_FIELD).text().isEqualTo("Foo")
        Ensure.that(LAST_NAME_FIELD).text().isEqualTo("Bar")
    );
    Ensure.reportSoftAssertions();
person John Smart    schedule 25.04.2021