Как справиться с динамическим шагом в огурце без зацепки AfterStep? - PullRequest
0 голосов
/ 19 апреля 2019

Я сейчас использую огурец (info.cukes) -Selenium для запуска теста автоматизации.

Теперь у меня есть ситуация, когда определенный шаг может произойти в любой точке потока. Итак, мне нужно разработать сценарий огурца, чтобы проверять динамическую страницу на каждом шаге.

Как я могу реализовать это без ловушки AfterStep? (огурец (info.cukes) не поддерживает хук AfterStep)

Пример:

Сценарий: оформить заказ.

Given: Open URL with chrome browser
When:  Login with correct ID and password
Then: Complect the details on step 1
And: Complect the details on step 2
And: Complect the details on step 3

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

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

Спасибо за вашу помощь.

1 Ответ

0 голосов
/ 19 апреля 2019

Когда речь идет о сохранении сквозного тестового кода DRY, объекты страницы почти всегда являются ответом (или, по крайней мере, они являются отличным местом для начала). Даже если бы у вас был хук AfterStep, я бы предостерег от добавления слишком большого количества неявных вещей, это может стать настоящей головной болью, чтобы следить за процессом и отладкой, особенно для других.

В вашем случае я мог бы представить объект страницы для трех страниц в рабочем процессе, и у каждой из них есть метод clickSubmit(), который проверяет URL-адрес загадочной страницы и завершает его, если он присутствует. Что-то вроде

public void clickSubmit() {
  click(By.className("submitButton"));

  if (driver.getCurrentUrl().contains("mysterypage")) {
      MysteryPage mysteryPage = new MysteryPage(driver);
      mysteryPage.completeForm();
      mysteryPage.clickSumbit();
  }
}

По общему признанию, немного странно, что метод с именем clickSubmit делает все это, поэтому, возможно, было бы лучше, если бы вспомогательный метод существовал в тесте и вызывался в конце каждого шага.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...