Шаблон страницы объекта и как реализовать некоторые лучшие практики - PullRequest
1 голос
/ 06 марта 2020

Лучше всего возвращать с одного объекта страницы следующий объект страницы при переходе от одного к другому

У меня есть ситуация, когда после объекта первой страницы простой диалог" ОК "информирует пользователя о состоянии. И после нажатия «ОК» появляется следующий объект страницы. Поскольку в приложении я часто обрабатываю такой простой диалог «ОК», я до сих пор делал это обычным образом c (найдите в диалоговом окне объекта «ОК» страницы диалога и нажмите ОК). При таком подходе я не могу вернуть объект следующей страницы.

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

  • реализует для каждого из этих диалогов «ОК» выделенный, который возвращает следующий заданный c объект страницы
  • , создает универсальный c простой диалог, в котором параметр типа является объект на следующей странице и введите логику c, чтобы найти и вернуть объект на следующей странице каким-либо образом (возможно? как это сделать?)
  • не следуйте передовым методам и используйте текущий подход, где просто «ОК» «объект страницы диалога не возвращает объект следующей страницы, а« test logi c »разрешает и вызывает сам объект следующей страницы
  • , чтобы первый объект страницы обрабатывал вызов простого« OK » -диалог страницы объекта, а затем вернуть отсюда объект следующей страницы; это было бы хорошо для простого "ОК" -диалога, но я предполагаю удивительный опыт кодирования в случае, если он более сложный "Да / Нет" -диалог.

Спасибо за ваши мысли и помощь обратная связь.

пс: может быть важно: язык программирования C#

Ответы [ 2 ]

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

Руководства Selenium по возврату PageObject для «моделирования поездки пользователя через наше приложение» В зависимости от типа поездки работают следующие опции:

  • второй вариант: если «Простой диалог ОК» - это ЧАСТЬ путешествия пользователя (т.е. вы собираетесь использовать этот объект страницы в тестах), вы можете использовать обобщенный c подход класса

SimpleDialogPage Объявление:

   public class SimpleDialogPage<T>
    {
     private IWebDriver driver;
     public SimpleDialogPage(IWebDriver driver){
            this.driver = driver;
     }
     public T ClickOk(){ 
     return new T(driver);
    }
  }

SimpleDialogPage Вызов с «первой страницы»

public SimpleDialogPage<TheNextPage> ClickNext(){ 
     return new SimpleDialogPage<TheNextPage>(driver)
    }
  • Вариант четвертый: Если «Простой OK Dialog» НЕ является частью пути пользователя (т.е. вы не будем использовать этот объект страницы в тестах) просто скройте его за действием
 TheNextPage ClickNextAndConfirmAlert(){
      SimpleDialogPage alert = _buttonNext.Click();
      alert.ClickOk();
      return new TheNextPage(driver);
 }
0 голосов
/ 10 марта 2020

Спасибо @Anatoly!

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

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