Как проверить, был ли пользователь перенаправлен на новую страницу в Serenity

Я начал играть с Serenity BDD и шаблоном сценария на Java. Хотя я понял основную идею, у меня возникли некоторые проблемы с применением ключевых концепций. Вот что я хотел бы сделать...

Моя первая попытка — автоматизировать вход пользователя в приложение. Это состоит из следующего:

  1. Откройте определенный URL-адрес.
  2. Введите учетные данные пользователя и нажмите кнопку отправки.
  3. Убедитесь, что пользователь находится на «Странице приветствия».

Я успешно реализовал пункты 1 и 2, но я борюсь с проверкой на 3.

JUnit-тест

@Test
public void shouldBeAbleToLogin() {
    user.whoCan(BrowseTheWeb.with(browser));
    user.wasAbleTo(OpenTheApplication.onTheLoginPage());
    user.attemptsTo(SubmitUserCredentials.withValues("test", "test"));
    user.should(???);
}

После отправки учетных данных пользователь перенаправляется на страницу приветствия. ??? указывает на то, что у меня нет четкого представления о том, как реализовать эту проверку.

  1. Убедитесь, что новый URL-адрес совпадает с URL-адресом страницы приветствия.
  2. Убедитесь, что определенный текст виден на странице приветствия.
  3. Убедитесь, что определенный элемент виден на странице приветствия.

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


person Robert Strauch    schedule 20.06.2018    source источник


Ответы (3)


В Serenity BDD вы можете написать класс Question, который:

импортировать статический net.thucydides.core.webdriver.ThucydidesWebDriverSupport.getDriver;

реализует вопрос ‹ логическое значение >

в нем будет метод:

@Override
public Boolean answeredBy(Actor actor) {

и в нем можно:

    WebDriver driver = getDriver();
    String currentUrl = driver.getCurrentUrl();

и в моем случае у меня был цикл, чтобы сделать еще несколько проверок на случай изменения URL-адреса.

person mrGe.org    schedule 18.09.2018

В этом случае может помочь serenity-ensure.

Ensure.thatTheCurrentPage().currentUrl()

возвращаемый URL-адрес как StringУбедитесь, что мы можем использовать встроенный метод String, такой как equals, contains.. для проверки.

Надеюсь это поможет!

person Huy Hóm Hỉnh    schedule 09.10.2019

вы также можете использовать метод waitForTextToAppear() или метод waitFor(xpath) для проверки приветственной страницы.

person sachin yadav    schedule 26.01.2020