Exemple #1
0
        /// <summary>
        /// Enters text in the username and password field, clicks the login button, then waits for the URL
        /// of the Dashboard page to load
        /// </summary>
        /// <param name="role">Either "learner", "observer", "program admin", etc.</param>
        /// <param name="userName"></param>
        /// <param name="password"></param>
        public dynamic LoginAsUser(string role, string userName, string password)
        {
            // Login with a valid user
            UserNameTxt.Clear();
            PasswordTxt.Clear();
            UserNameTxt.SendKeys(userName);
            PasswordTxt.SendKeys(password);
            PasswordTxt.SendKeys(Keys.Tab);
            ClickToAdvance(LoginBtn);

            // Will need to refactor this once I get a better understanding of roles and how they should be redirected once logged in
            if (role == "learner")
            {
                DashboardPage page = new DashboardPage(Browser);
                page.WaitForInitialize();
                return(page);
            }

            if (role == "observer")
            {
                DashboardPage page = new DashboardPage(Browser);
                page.WaitForInitialize();
                return(page);
            }

            else
            {
                DashboardPage page = new DashboardPage(Browser);
                page.WaitForInitialize();
                return(page);
            }
        }
Exemple #2
0
        /// <summary>
        /// Enters text in the username and password field, clicks the login button, then waits for the URL
        /// of the home page to load
        /// </summary>
        /// <param name="userName"></param>
        /// <param name="password"></param>
        public dynamic Login(IWebDriver browser, string userName, string password)
        {
            browser.Navigate().GoToUrl(string.Format("{0}login", System.Configuration.ConfigurationManager.AppSettings["LSURL"].ToString()));
            LoginPage LSLP = new LoginPage(browser);

            LSLP.WaitForInitialize();

            UserNameTxt.Clear();
            PasswordTxt.Clear();
            UserNameTxt.SendKeys(userName);
            PasswordTxt.SendKeys(password);
            PasswordTxt.SendKeys(Keys.Tab);
            ClickAndWait(LoginBtn);

            // If there is only 1 site in an environment, then the application will go to that sites landing page. If there are multiple sites,
            // then it goes to the Search page. So we first need to wait for an element that appears on BOTH pages (The Sites breadcrumb link)
            Browser.WaitForElement(Bys.SitePage.SitesBreadCrumbLnk, ElementCriteria.IsVisible);

            // Then use a TRY to wait a split second for the Sites page Additional Information tab (This tab appears immediately along
            // with the Sites breadcrumb link). If that doesnt appear, then that means we will be on the Search page, so
            // we will use the Catch to wait for the Search page
            try
            {
                Browser.WaitForElement(Bys.SitePage.AdditionalInfoTab, TimeSpan.FromMilliseconds(500), ElementCriteria.IsVisible);
                SitePage page = new SitePage(Browser);
                return(page);
            }
            catch
            {
                SearchPage page = new SearchPage(Browser);
                page.WaitForInitialize();
                return(page);
            }
        }
Exemple #3
0
        //Login method for page object
        public ProfilePage Login(string username, string password)
        {
            UserNameTxt.SendKeys(username);
            PasswordTxt.SendKeys(password);
            LoginBtn.Click();

            return(new ProfilePage());
        }
 /// <summary>
 /// Enters text in the username and password field, clicks the login button, and waits for the home page to load
 /// </summary>
 /// <param name="userName"></param>
 /// <param name="password"></param>
 public dynamic Login(IWebDriver browser, string userName, string password)
 {
     UserNameTxt.Clear();
     PasswordTxt.Clear();
     UserNameTxt.SendKeys(userName);
     PasswordTxt.SendKeys(password);
     PasswordTxt.SendKeys(Keys.Tab);
     return(ClickAndWait(LoginBtn));
 }
Exemple #5
0
 public void LoginToWebApp(string user, string pass)
 {
     Selenium.WaitUntilElementIsClickable(SignInLnk);
     SignInLnk.Click();
     EmailTxt.Clear();
     EmailTxt.SendKeys(user);
     PasswordTxt.Clear();
     PasswordTxt.SendKeys(pass);
     LoginBtn.Click();
 }
Exemple #6
0
        /// <summary>
        /// Enters text in the username and password field, clicks the login button, then waits for the URL
        /// of the Dashboard page to load
        /// </summary>
        /// <param name="role">Either "learner", "observer", "program admin", etc.</param>
        /// <param name="userName"></param>
        /// <param name="password"></param>
        public HomePage LoginAsExistingUser(string userName, string password)
        {
            // Login with a valid user
            UserNameTxt.Clear();
            PasswordTxt.Clear();
            UserNameTxt.SendKeys(userName);
            PasswordTxt.SendKeys(password);
            PasswordTxt.SendKeys(Keys.Tab);
            HomePage HP = ClickAndWait(LoginBtn);

            return(HP);
        }
Exemple #7
0
 /// <summary>
 /// Enters text in the username and password field, clicks the login button, then waits for the URL
 /// of the Library page to load
 /// </summary>
 /// <param name="userName"></param>
 /// <param name="Password"></param>
 public dynamic LoginAsUser(string userName, string Password)
 {
     // Login with a valid user credentials
     UserNameTxt.Clear();
     PasswordTxt.Clear();
     UserNameTxt.SendKeys(userName);
     PasswordTxt.SendKeys(Password);
     PasswordTxt.SendKeys(Keys.Tab);
     ClickToAdvance(LoginBtn);
     Browser.WaitForElement(Bys.EducationCenterPage.GcepLnk, TimeSpan.FromSeconds(60), ElementCriteria.IsEnabled);
     return(new EducationCenterPage(Browser));
 }
        /// <summary>
        /// Enters text in the username and password field, clicks the login button, then waits for the URL
        /// of the Dashboard page to load
        /// </summary>
        /// <param name="userName">The cme360 username</param>
        /// <param name="password"></param>
        public MyDashboardPage Login(string userName, string password)
        {
            // Login with a valid user
            UserNameTxt.Clear();
            PasswordTxt.Clear();
            UserNameTxt.SendKeys(userName);
            PasswordTxt.SendKeys(password);
            PasswordTxt.SendKeys(Keys.Tab);
            MyDashboardPage page = ClickAndWait(LoginBtn);

            return(page);
        }
Exemple #9
0
        /// <summary>
        /// Enters text in the username and password field, clicks the login button, then waits for the URL
        /// of the Dashboard page to load
        /// </summary>
        /// <param name="userName">This is a Description</param>
        /// <param name="password"></param>
        public dynamic LoginAsUser(string userName, string password)
        {
            // Login with a valid user
            UserNameTxt.Clear();
            PasswordTxt.Clear();
            UserNameTxt.SendKeys(userName);
            PasswordTxt.SendKeys(password);
            PasswordTxt.SendKeys(Keys.Tab);
            ClickToAdvance(LoginBtn);

            DashboardPage page = new DashboardPage(Browser);


            page.WaitForInitialize();
            return(page);
        }
Exemple #10
0
        /// <summary>
        /// Enters text in the username and password field, clicks the login button, then waits for the URL
        /// of the Dashboard page to load
        /// </summary>
        /// <param name="role">Either "learner", "observer", "program admin", etc.</param>
        /// <param name="userName"></param>
        /// <param name="password"></param>
        public dynamic LoginAsExistingUser(string userName, string password)
        {
            // Login with a valid user
            UserNameTxt.Clear();
            PasswordTxt.Clear();
            UserNameTxt.SendKeys(userName);
            PasswordTxt.SendKeys(password);
            PasswordTxt.SendKeys(Keys.Tab);
            HomePage HP = ClickToAdvance(LoginBtn);

            return(HP);

            //DashboardPage DP = new DashboardPage(Browser);
            // DP.WaitForInitialize();
            // return DP;
        }
Exemple #11
0
        /// <summary>
        /// Enters text in the username and password field, clicks the login button, then waits for the URL
        /// of the Dashboard page to load
        /// </summary>
        /// <param name="role">Either "learner", "observer", "program admin", etc.</param>
        /// <param name="userName"></param>
        /// <param name="password"></param>
        public dynamic LoginAsExistingUser(string userName, string password)
        {
            // Login with a valid user
            UserNameTxt.Clear();
            PasswordTxt.Clear();
            UserNameTxt.SendKeys(userName);
            PasswordTxt.SendKeys(password);
            PasswordTxt.SendKeys(Keys.Tab);
            ClickToAdvance(LoginBtn);


            //    CBDProgDirectorPage PD = new CBDProgDirectorPage(Browser);
            //    PD.WaitForInitialize();
            //    return PD;



            return(null);
        }
Exemple #12
0
 public void EnterPassword(string password)
 {
     PasswordTxt.SendKeys(password);
 }
Exemple #13
0
        /// <summary>
        /// Enters text in the username and password field, clicks the login button, then waits for the URL
        /// of the Dashboard page to load
        /// </summary>
        /// <param name="role">Either "learner", "observer", "program admin", etc.</param>
        /// <param name="userName"></param>
        /// <param name="password"></param>
        public dynamic LoginAsExistingUser(UserUtils.UserRole role, string userName, string password)
        {
            // Login with a valid user
            UserNameTxt.Clear();
            PasswordTxt.Clear();
            UserNameTxt.SendKeys(userName);
            PasswordTxt.SendKeys(password);
            PasswordTxt.SendKeys(Keys.Tab);
            ClickAndWait(LoginBtn);

            switch (role)
            {
            case UserUtils.UserRole.LR:
                CBDLearnerPage LP = new CBDLearnerPage(Browser);
                LP.WaitForInitialize();

                // Adding these if statements here because sometimes the graph doesnt appear after we login. It only happens about 5 percent of the time,
                // so DEV is not looking into it. So if the graph does not appear, then we will navigate to the already loaded page again
                // UPDATE: Added another if statement to refresh again. This was working perfectly before today (Today I increased the amount of parallel
                // tests, and also started running Firefox again, so the issue is either with Firefox, or with increasing the max parallel setting. The max
                // is set at 16 now, this never was an issue when max was set to 6)
                if (Browser.FindElements(By.Id("EPAChart")).Count == 0)
                {
                    Browser.WaitForElement(Bys.RCPPage.CBDTab, ElementCriteria.IsVisible);
                    ClickAndWaitBasePage(CBDTab);
                    try
                    {
                        LP.WaitUntil(TimeSpan.FromSeconds(60), Criteria.CBDLearnerPage.EPAChartVisibleAndEnabledAndHasText);
                    }
                    catch
                    {
                        if (Browser.FindElements(By.Id("EPAChart")).Count == 0)
                        {
                            Browser.WaitForElement(Bys.RCPPage.CBDTab, ElementCriteria.IsVisible);
                            ClickAndWaitBasePage(CBDTab);
                            LP.WaitUntil(TimeSpan.FromSeconds(60), Criteria.CBDLearnerPage.EPAChartVisibleAndEnabledAndHasText);
                        }
                    }
                }
                return(LP);

            case UserUtils.UserRole.OB:
                CBDObserverPage OP = new CBDObserverPage(Browser);
                OP.WaitForInitialize();
                return(OP);

            case UserUtils.UserRole.PA:
                CBDProgAdminPage PA = new CBDProgAdminPage(Browser);
                PA.WaitForInitialize();
                return(PA);

            case UserUtils.UserRole.PD:
                CBDProgDirectorPage PD = new CBDProgDirectorPage(Browser);
                PD.WaitForInitialize();
                return(PD);

            case UserUtils.UserRole.PGD:
                CBDProgDeanPage page = new CBDProgDeanPage(Browser);
                page.WaitForInitialize();
                return(page);

            case UserUtils.UserRole.CUPER:
                MyDashboardPage PERCUMyDashboardPage = new MyDashboardPage(Browser);
                PERCUMyDashboardPage.WaitForInitialize();
                PERCredentialStaffPage CP = PERCUMyDashboardPage.ClickAndWaitBasePage(PERCUMyDashboardPage.PERAFCTab);
                return(CP);

            case UserUtils.UserRole.CSDiploma:
                DiplomaClinicalSupervisorPage CSP = new DiplomaClinicalSupervisorPage(Browser);
                CSP.WaitForInitialize();
                return(CSP);

            case UserUtils.UserRole.CUDiploma:
                MyDashboardPage DiplomaCUMyDashboardPage = new MyDashboardPage(Browser);
                DiplomaCUMyDashboardPage.WaitForInitialize();
                DiplomaCredentialStaffPage DCUP = DiplomaCUMyDashboardPage.ClickAndWaitBasePage(DiplomaCUMyDashboardPage.MyDiplomaTab);
                return(DCUP);

            case UserUtils.UserRole.DDDiploma:
                DiplomaDirectorPage DD = new DiplomaDirectorPage(Browser);
                DD.WaitForInitialize();
                return(DD);

            case UserUtils.UserRole.FOMDiploma:
                DiplomaFacOfMedicinePage FOMP = new DiplomaFacOfMedicinePage(Browser);
                FOMP.WaitForInitialize();
                return(FOMP);

            case UserUtils.UserRole.MP:
                MyDashboardPage DP = new MyDashboardPage(Browser);
                DP.WaitForInitialize();
                return(DP);

            case UserUtils.UserRole.TraineePER:
                PERTraineePage PTP = new PERTraineePage(Browser);
                PTP.WaitForInitialize();
                return(PTP);

            case UserUtils.UserRole.TraineeDiploma:
                DiplomaTraineePage DTP = new DiplomaTraineePage(Browser);
                DTP.WaitForInitialize();
                return(DTP);

            case UserUtils.UserRole.REF:
                PERRefereePage PERRP = new PERRefereePage(Browser);
                PERRP.WaitForInitialize();
                return(PERRP);

            case UserUtils.UserRole.ASRPER:
                PERAssessorPage AP = new PERAssessorPage(Browser);
                AP.WaitForInitialize();
                return(AP);

            case UserUtils.UserRole.ASRDiploma:
                DiplomaAssessorPage DAP = new DiplomaAssessorPage(Browser);
                DAP.WaitForInitialize();
                return(DAP);
            }

            return(null);
        }
Exemple #14
0
        /// <summary>
        /// Logs out of the current user only if a user is currently logged in, enters text in the username and password field,
        /// clicks the login button, then waits for the URL of the Dashboard page to load
        /// </summary>
        /// <param name="role">Either "learner", "observer", "program admin", etc.</param>
        /// <param name="userName"></param>
        /// <param name="password"></param>
        /// <param name="newUser">true or false, depending on if it is a new user or not</param>
        public dynamic LoginAsNewUser(UserUtils.UserRole role, string userName, string password)
        {
            IWebElement acceptBtn = null;

            // Login with a valid user
            UserNameTxt.Clear();
            PasswordTxt.Clear();
            UserNameTxt.SendKeys(userName);
            PasswordTxt.SendKeys(password);
            PasswordTxt.SendKeys(Keys.Tab);
            ClickAndWait(LoginBtn);

            // For some reason, the Selenium click fails to make the RCP page login, it instead stays at the login page.
            // This happens maybe 5% of the time. So we will add a try catch block here to click the login button
            // again if it fails
            try
            {
                acceptBtn = Browser.WaitForElement(Bys.LoginPage.iAcceptBtn, TimeSpan.FromSeconds(10), ElementCriteria.IsVisible);
            }
            catch
            {
                ClickAndWait(LoginBtn);
                acceptBtn = Browser.WaitForElement(Bys.LoginPage.iAcceptBtn, ElementCriteria.IsVisible);
            }

            Thread.Sleep(0300);
            acceptBtn.Click();

            // Depending on the role of the user that we use, we need to wait differently and return different pages
            switch (role)
            {
            case UserUtils.UserRole.LR:
                CBDLearnerPage LP = new CBDLearnerPage(Browser);
                LP.WaitForInitialize();

                // Adding these if statements here because sometimes the graph doesnt appear after we login. It only happens about 5 percent of the time,
                // so DEV is not looking into it. So if the graph does not appear, then we will navigate to the already loaded page again
                // UPDATE: Added another if statement to refresh again. This was working perfectly before today (Today I increased the amount of parallel
                // tests, and also started running Firefox again, so the issue is either with Firefox, or with increasing the max parallel setting. The max
                // is set at 16 now, this never was an issue when max was set to 6)
                // UPDATE: Two if statements still didndt resolve the issue. Going to remove Navigation method, and instead click  on the CBD tab and see
                // if that works
                if (Browser.FindElements(By.Id("EPAChart")).Count == 0)
                {
                    Browser.WaitForElement(Bys.RCPPage.CBDTab, ElementCriteria.IsVisible);
                    ClickAndWaitBasePage(CBDTab);
                    try
                    {
                        LP.WaitUntil(TimeSpan.FromSeconds(60), Criteria.CBDLearnerPage.EPAChartVisibleAndEnabledAndHasText);
                    }
                    catch
                    {
                        if (Browser.FindElements(By.Id("EPAChart")).Count == 0)
                        {
                            Browser.WaitForElement(Bys.RCPPage.CBDTab, ElementCriteria.IsVisible);
                            ClickAndWaitBasePage(CBDTab);
                            LP.WaitUntil(TimeSpan.FromSeconds(60), Criteria.CBDLearnerPage.EPAChartVisibleAndEnabledAndHasText);
                        }
                    }
                }

                return(LP);

            case UserUtils.UserRole.OB:
                CBDObserverPage OP = new CBDObserverPage(Browser);
                OP.WaitForInitialize();
                return(OP);

            case UserUtils.UserRole.PA:
                CBDProgAdminPage PA = new CBDProgAdminPage(Browser);
                PA.WaitForInitialize();
                return(PA);

            case UserUtils.UserRole.TraineePER:
                PERTraineePage PTP = new PERTraineePage(Browser);
                PTP.WaitForInitialize();
                return(PTP);

            case UserUtils.UserRole.TraineeDiploma:
                DiplomaTraineePage DTP = new DiplomaTraineePage(Browser);
                DTP.WaitForInitialize();
                return(DTP);

            case UserUtils.UserRole.MP:
                MyDashboardPage DP = new MyDashboardPage(Browser);
                DP.WaitForInitialize();
                return(DP);
            }

            return(null);
        }
Exemple #15
0
        /// <summary>
        /// Enters text in the username and password field, clicks the login button, then waits for the URL
        /// of the Dashboard page to load
        /// </summary>
        /// <param name="role">Either "learner", "observer", "program admin", etc.</param>
        /// <param name="userName"></param>
        /// <param name="password"></param>
        public dynamic LoginAsExistingUser(UserUtils.UserRole role, string userName, string password)
        {
            // Login with a valid user
            UserNameTxt.Clear();
            PasswordTxt.Clear();
            UserNameTxt.SendKeys(userName);
            PasswordTxt.SendKeys(password);
            PasswordTxt.SendKeys(Keys.Tab);
            ClickAndWait(LoginBtn);

            switch (role)
            {
            case UserUtils.UserRole.LR:
                CBDLearnerPage LP = new CBDLearnerPage(Browser);
                LP.WaitForInitialize();

                // Adding this if statements here because sometimes the graph doesnt appear after we login. It only happens about 5 percent of the time,
                // so DEV is not looking into it. So if the graph does not appear, then we will navigate to the already loaded page again
                if (Browser.FindElements(By.Id("EPAChart")).Count == 0)
                {
                    Navigation.GoToLearnerPage(Browser);
                    LP.WaitUntil(TimeSpan.FromSeconds(30), Criteria.CBDLearnerPage.EPAChartVisibleAndEnabledAndHasText);
                }
                return(LP);

            case UserUtils.UserRole.OB:
                CBDObserverPage OP = new CBDObserverPage(Browser);
                OP.WaitForInitialize();
                return(OP);

            case UserUtils.UserRole.PA:
                CBDProgAdminPage PA = new CBDProgAdminPage(Browser);
                PA.WaitForInitialize();
                return(PA);

            case UserUtils.UserRole.PD:
                CBDProgDirectorPage PD = new CBDProgDirectorPage(Browser);
                PD.WaitForInitialize();
                return(PD);

            case UserUtils.UserRole.PGD:
                CBDProgDeanPage page = new CBDProgDeanPage(Browser);
                page.WaitForInitialize();
                return(page);

            case UserUtils.UserRole.CUPER:
                MyDashboardPage PERCUMyDashboardPage = new MyDashboardPage(Browser);
                PERCUMyDashboardPage.WaitForInitialize();
                PERCredentialStaffPage CP = PERCUMyDashboardPage.ClickAndWaitBasePage(PERCUMyDashboardPage.PERAFCTab);
                return(CP);

            case UserUtils.UserRole.CSDiploma:
                DiplomaClinicalSupervisorPage CSP = new DiplomaClinicalSupervisorPage(Browser);
                CSP.WaitForInitialize();
                return(CSP);

            case UserUtils.UserRole.CUDiploma:
                MyDashboardPage DiplomaCUMyDashboardPage = new MyDashboardPage(Browser);
                DiplomaCUMyDashboardPage.WaitForInitialize();
                DiplomaCredentialStaffPage DCUP = DiplomaCUMyDashboardPage.ClickAndWaitBasePage(DiplomaCUMyDashboardPage.MyDiplomaTab);
                return(DCUP);

            case UserUtils.UserRole.DDDiploma:
                DiplomaDirectorPage DD = new DiplomaDirectorPage(Browser);
                DD.WaitForInitialize();
                return(DD);

            case UserUtils.UserRole.FOMDiploma:
                DiplomaFacOfMedicinePage FOMP = new DiplomaFacOfMedicinePage(Browser);
                FOMP.WaitForInitialize();
                return(FOMP);

            case UserUtils.UserRole.MP:
                MyDashboardPage DP = new MyDashboardPage(Browser);
                DP.WaitForInitialize();
                return(DP);

            case UserUtils.UserRole.TraineePER:
                PERTraineePage PTP = new PERTraineePage(Browser);
                PTP.WaitForInitialize();
                return(PTP);

            case UserUtils.UserRole.TraineeDiploma:
                DiplomaTraineePage DTP = new DiplomaTraineePage(Browser);
                DTP.WaitForInitialize();
                return(DTP);

            case UserUtils.UserRole.REF:
                PERRefereePage PERRP = new PERRefereePage(Browser);
                PERRP.WaitForInitialize();
                return(PERRP);

            case UserUtils.UserRole.ASRPER:
                PERAssessorPage AP = new PERAssessorPage(Browser);
                AP.WaitForInitialize();
                return(AP);

            case UserUtils.UserRole.ASRDiploma:
                DiplomaAssessorPage DAP = new DiplomaAssessorPage(Browser);
                DAP.WaitForInitialize();
                return(DAP);
            }

            return(null);
        }
Exemple #16
0
        /// <summary>
        /// Logs out of the current user only if a user is currently logged in, enters text in the username and password field,
        /// clicks the login button, then waits for the URL of the Dashboard page to load
        /// </summary>
        /// <param name="role">Either "learner", "observer", "program admin", etc.</param>
        /// <param name="userName"></param>
        /// <param name="password"></param>
        /// <param name="newUser">true or false, depending on if it is a new user or not</param>
        public dynamic LoginAsNewUser(UserUtils.UserRole role, string userName, string password)
        {
            IWebElement acceptBtn = null;

            // Login with a valid user
            UserNameTxt.Clear();
            PasswordTxt.Clear();
            UserNameTxt.SendKeys(userName);
            PasswordTxt.SendKeys(password);
            PasswordTxt.SendKeys(Keys.Tab);
            ClickAndWait(LoginBtn);

            // For some reason, the Selenium click fails to make the RCP page login, it instead stays at the login page.
            // This happens maybe 5% of the time. So we will add a try catch block here to click the login button
            // again if it fails
            try
            {
                acceptBtn = Browser.WaitForElement(Bys.LoginPage.iAcceptBtn, TimeSpan.FromSeconds(10), ElementCriteria.IsVisible);
            }
            catch
            {
                ClickAndWait(LoginBtn);
                acceptBtn = Browser.WaitForElement(Bys.LoginPage.iAcceptBtn, ElementCriteria.IsVisible);
            }

            Thread.Sleep(0300);
            acceptBtn.Click();

            // Depending on the role of the user that we use, we need to wait differently and return different pages
            switch (role)
            {
            case UserUtils.UserRole.LR:
                CBDLearnerPage LP = new CBDLearnerPage(Browser);
                LP.WaitForInitialize();

                // Adding this if statements here because sometimes the graph doesnt appear after we login.
                // It only happens about 5 percent of the time, so DEV is not looking into it. So if the
                // graph does not appear, then we will navigate to the already loaded page again

                if (Browser.FindElements(By.Id("EPAChart")).Count == 0)
                {
                    Navigation.GoToLearnerPage(Browser);
                    LP.WaitUntil(TimeSpan.FromSeconds(30), Criteria.CBDLearnerPage.EPAChartVisibleAndEnabledAndHasText);
                }

                return(LP);

            case UserUtils.UserRole.OB:
                CBDObserverPage OP = new CBDObserverPage(Browser);
                OP.WaitForInitialize();
                return(OP);

            case UserUtils.UserRole.PA:
                CBDProgAdminPage PA = new CBDProgAdminPage(Browser);
                PA.WaitForInitialize();
                return(PA);

            case UserUtils.UserRole.TraineePER:
                PERTraineePage PTP = new PERTraineePage(Browser);
                PTP.WaitForInitialize();
                return(PTP);

            case UserUtils.UserRole.TraineeDiploma:
                DiplomaTraineePage DTP = new DiplomaTraineePage(Browser);
                DTP.WaitForInitialize();
                return(DTP);

            case UserUtils.UserRole.MP:
                MyDashboardPage DP = new MyDashboardPage(Browser);
                DP.WaitForInitialize();
                return(DP);
            }

            return(null);
        }