Serenity Cucumber - убедитесь, что элемент находится в области просмотра - PullRequest
0 голосов
/ 03 марта 2020

В Serenity Cucumber некоторые методы не прокручивают элемент в порт представления: например, метод getValue () просто получает это значение и не прокручивает браузер, так что элемент находится в представлении, что приводит к тому, что отчет просто покажите снимок экрана в верхней части страницы, но не тот элемент, с которым вы взаимодействуете.

Пример текущего метода:

@Step("read first name")
public String readFirstName() {
  return $(ContactPage.firstNameField).getValue();
}

Пример моих попыток прокрутки элемента в поле зрения, поэтому он показывает на скриншоте:

@Step("read first name")
public String readFirstName() {
  new ScrollToBy(ContactPage.firstNameField).andAlignToTop();
  return $(ContactPage.firstNameField).getValue();
}

1 Ответ

1 голос
/ 19 марта 2020

Вы можете использовать что-то вроде сценария вопросов / заданий для чтения закадрового текста .


@Subject("the displayed text")
public class TextValue implements Question<String> {

    private Target target

    @Override
    public String answeredBy(Actor actor) {
        return target.resolveFor(actor).getText();
    }

    private TextValue(Target target) {
        this.target = target;
    }

    public static Question<String> of(Target target) { return new TextValue(target); }
}

Тогда на ваших шагах ...

theActorInTheSpotlight().wasAbleTo(Scroll.to(ContactPage.firstNameField));
theActorInTheSpotlight().should(eventually(
    seeThat(the(TextValue.of(ContactPage.firstNameField)), 
            isEqualTo(expectedValue))
));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...