public void CreateUser(UserGenerator userData)
        {
            var mainMenu = new MainMenu(_driver);
            var userPage = new SubMenuUsers(_driver);

            // create user
            Console.WriteLine("Creating user");
            mainMenu.ClickUsers();
            userPage.ClickCreateNewUser();

            // enter user info
            _driver.SwitchToFrameById("MainContentsIFrame");
            _driver.SwitchToFrameById("tabs_Panel");
            userPage.FillUserId(userData.UserName);
            userPage.ChangePassword(userData.Password);
            userPage.FillRealName(userData.RealName);
            userPage.FillEmail(userData.Email);

            // save
            _driver.SwitchToDefaultFrame();
            _driver.SwitchToFrameById("MainContentsIFrame");
            userPage.ClickSaveButton();
            userPage.ClickSaveAndCloseButton();
        }
        public void User_Create_New()
        {
            // data
            var userData = new UserGenerator();

            // page objects
            var mainMenu  = new MainMenu(_driver);
            var userMenu  = new SubMenuUsers(_driver);
            var userPages = new UserPages(_driver);

            // helpers
            var userDataAccessor = new UserDataAccessor();

            try
            {
                mainMenu.ClickUsers();
                userMenu.ClickCreateNewUser();
                _test.Log(LogStatus.Info, "Navigate to Users > Create a new user");

                _driver.SwitchToFrameById("MainContentsIFrame");
                Assert.IsTrue(userPages.CreateNewUserPage.IsDisplayed(),
                              "The 'Create a new user' page is not displayed");
                _test.Log(LogStatus.Pass, "The 'Create a new user' page is displayed");

                // enter user info
                _driver.SwitchToFrameById("tabs_Panel");

                userPages.CreateNewUserPage.EnterShortName(userData.UserName);
                _test.Log(LogStatus.Info, "Enter username: "******"Enter real name: " + userData.RealName);

                userPages.CreateNewUserPage.EnterEmail(userData.Email);
                _test.Log(LogStatus.Info, "Enter user email: " + userData.Email);

                //save
                _driver.SwitchToDefaultFrame();
                _driver.SwitchToFrameById("MainContentsIFrame");
                userPages.CreateNewUserPage.ClickSaveButton();
                userPages.CreateNewUserPage.ClickSaveAndCloseButton();
                _test.Log(LogStatus.Info, "Saving user");

                Assert.IsInstanceOfType(userDataAccessor.GetUser(userData.UserName), typeof(RecruitUser),
                                        "The user was not created in the database");
                _test.Log(LogStatus.Pass, "User was created in the database");

                Assert.IsTrue(userPages.ListUsersPage.IsDisplayed(), "The 'List all users' page is not displayed");
                _test.Log(LogStatus.Pass, "The 'List all users' page should be displayed after clicking Save and Close");

                // set the ID in order find the user on the 'List all users' page and to delete the user
                userData.Id = userDataAccessor.GetUser(userData.UserName).Id;
                Assert.IsTrue(userPages.ListUsersPage.ItemFound(userData.Id.ToString()),
                              "The user is listed on the List all users page");
                _test.Log(LogStatus.Pass, "User is listed on the List all users page");

                userData.DeleteFromDatabase();
            }
            catch (Exception e)
            {
                HandleException(e, _driver);
                throw;
            }
        }