Когда речь идет о сохранении сквозного тестового кода 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
делает все это, поэтому, возможно, было бы лучше, если бы вспомогательный метод существовал в тесте и вызывался в конце каждого шага.
В качестве запоздалой мысли, если у вас есть реальные бизнес-правила относительно того, когда и где появляется эта промежуточная страница, и она не просто случайна, ее, возможно, стоит захватить в корнишоне. Если пользователь действительно заботится о том, что он появляется здесь, а не там, но вы сделали огурца слепым к его внешнему виду, чтобы он всегда «просто работал», вы могли бы скрыть ошибку.