Serenity-BDD: Сценарий: Как найти строку текста в любом месте страницы (в любом элементе)

После нескольких часов поиска, я должен спросить...

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

Serenity-BDD для меня новичок, и я копаюсь в сценариях (и мой босс любит репортажи), но мне трудно понять некоторые из них (и хороших примеров для прохождения немного). Кроме того, у меня очень мало опыта работы с Selenium.

Если бы кто-нибудь мог помочь или указать мне некоторую информацию (помимо онлайн-руководства по serenity-bdd), я был бы очень признателен.


person PostPrimeGamer    schedule 21.01.2017    source источник


Ответы (1)


С шаблоном сценария вы пишете Вопросы, которые возвращают ваши ошибки формы, которые можно проверить в ваших тестах BDD. Например, у меня есть форма, которая показывает ошибки рядом с входным значением. Все ошибки имеют класс css ".text-danger". Соответствующий объект Question будет выглядеть так:

public class FormErrors
 implements Question<List<String>> {

 public static FormErrors displayed() {
    return new FormErrors();
 }

 @Override
 public List<String> answeredBy( Actor actor ) {
    return Text.of( EnterForm.FORM_ERRORS ).viewedBy( actor ).asList();
 }
}

Константа FORM_ERRORS выглядит так:

public static final Target FORM_ERRORS = Target.the( "Form Errors" ).locatedBy( ".text-danger" );

Таким образом, я могу проверить правильность ошибок следующим образом:

theActorInTheSpotlight().should( 
  seeThat( FormErrors.displayed(), is( errors ) ) 
);

Хорошим примером написания тестов сценария является проект screenplay-pattern-todomvc. .

person mszalbach    schedule 25.01.2017