提问者:小点点

Serenity BDD剧本验证网页上的多个文本元素


如何使用Serenity BDD验证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(); }

共2个答案

匿名用户

您可以使用确保库

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();

匿名用户

实际上,带有软断言的示例并没有按预期工作。当第一次检查失败时,则不会执行下一次检查。