public void AddSkill(IWebDriver driver, string skillName, string skillLevel)
        {
            // Click Skills tab
            WaitForElement(driver, "XPath", "//a[@data-tab='second']", 5);
            SkillTab.Click();

            // Click Add New
            WaitForElement(driver, "XPath", "//div[@data-tab='second']//div[contains(text(),'Add New')]", 5);
            SkillAddNewBtn.Click();

            // Enter Skill
            WaitForElement(driver, "XPath", "//input[@placeholder='Add Skill']", 5);
            SkillName.SendKeys(skillName);

            // Choose Skill level 0-beginer; 1-intermediate; 2-expert
            SkillDropdownBox.Click();
            new SelectElement(SkillDropdownBox).SelectByText(skillLevel);

            // Click Add
            SkillAddBtn.Click();
        }
        // Enter Profile
        internal void EnterProfile()
        {
            // Populate the data saved in Excel to Collection
            try
            {
                GlobalDefinitions.ExcelLib.PopulateInCollection(Base.ExcelPath, "Profile");
            } catch (Exception e)
            {
                Assert.Fail("Test failed to populate in collection at entering profile step", e.Message);
            }
            #region  Enter Availability Type
            try
            {
                // Click Edit icon
                GlobalDefinitions.WaitForElement(GlobalDefinitions.driver, "XPath", "//span[contains(text(),'Time')]/i", 5);
                AvailabilityTimeEdit.Click();

                // Click dropdown menu
                AvailabilityTime.Click();

                // Choose Availability parttime; fulltime
                new SelectElement(AvailabilityTime).SelectByText(GlobalDefinitions.ExcelLib.ReadData(2, "Availability Type"));
                //Base.test.Log(LogStatus.Info, "Enter availability type successfully");
                Base.test.Log(RelevantCodes.ExtentReports.LogStatus.Pass, "Enter availability type successfully");
            } catch (Exception ex)
            {
                Assert.Fail("Test failed to enter Availability Type", ex.Message);
            }
            #endregion

            #region Enter Availability Hours
            try
            {
                // Click Edit icon
                GlobalDefinitions.WaitForElement(GlobalDefinitions.driver, "XPath", "//span[contains(text(),'30hours') or contains(text(),'As needed')]/i", 5);
                AvailabilityHoursEdit.Click();

                // Click dropdown menu
                AvailabilityHours.Click();

                // Select Hours 0-less than 30h; 1-more than 30h 2-as needed
                new SelectElement(AvailabilityHours).SelectByText(GlobalDefinitions.ExcelLib.ReadData(2, "Availability Hours"));
                Base.test.Log(RelevantCodes.ExtentReports.LogStatus.Pass, "Enter availability successfully");
            } catch (Exception ex)
            {
                Assert.Fail("Test failed to enter Availability Hours", ex.Message);
            }
            #endregion

            #region Enter Earn Target
            try
            {
                // Click Edit icon
                GlobalDefinitions.WaitForElement(GlobalDefinitions.driver, "XPath", "//span[contains(text(),'per month')]/i", 5);
                SalaryEdit.Click();

                // Click dropdown menu
                Salary.Click();

                // Click earn 0-less than 500; 1-500~1000; 2-more than 1000
                new SelectElement(Salary).SelectByText(GlobalDefinitions.ExcelLib.ReadData(2, "Earn Target"));
                Base.test.Log(RelevantCodes.ExtentReports.LogStatus.Pass, "Enter earn target successfully");
            } catch (Exception ex)
            {
                Assert.Fail("Test failed to enter Earn Target", ex.Message);
            }
            #endregion

            #region Enter Description
            try
            {
                // Click Edit icon
                DescriptionEdit.Click();

                // Input description in text area
                GlobalDefinitions.WaitForElement(GlobalDefinitions.driver, "XPath", "//textarea[@name='value']", 5);
                Description.Clear();
                Description.SendKeys(GlobalDefinitions.ExcelLib.ReadData(2, "Description"));

                // Click Save
                DescriptionSave.Click();
                Base.test.Log(RelevantCodes.ExtentReports.LogStatus.Pass, "Enter description successfully");
            } catch (Exception ex)
            {
                Assert.Fail("Test failed to Enter Description", ex.Message);
            }
            #endregion

            #region Enter Language
            try
            {
                // Click Language tab
                GlobalDefinitions.WaitForElement(GlobalDefinitions.driver, "XPath", "//a[@data-tab='first']", 5);
                LanguageTab.Click();

                // Click Add New
                GlobalDefinitions.WaitForElement(GlobalDefinitions.driver, "XPath", "//div[@data-tab='first']//div[contains(text(),'Add New')]", 5);
                LanguageAddNewBtn.Click();

                // Enter Language
                GlobalDefinitions.WaitForElement(GlobalDefinitions.driver, "XPath", "//input[@placeholder='Add Language']", 5);
                LanguageName.SendKeys(GlobalDefinitions.ExcelLib.ReadData(2, "Language"));

                // Choose Language level 0-basic; 1-conversational; 2-fluent; 3-native
                LanguageDropdownBox.Click();
                new SelectElement(LanguageDropdownBox).SelectByText
                    (GlobalDefinitions.ExcelLib.ReadData(2, "Language Level")); // Need using OpenQA.Selenium.Support.UI;

                // Click Add
                LanguageAddBtn.Click();
                Base.test.Log(RelevantCodes.ExtentReports.LogStatus.Pass, "Enter language successfully");
            } catch (Exception ex)
            {
                Assert.Fail("Test failed to enter/add Language", ex.Message);
            }
            #endregion

            #region Enter Skills
            try
            {
                // Click Skills tab
                GlobalDefinitions.WaitForElement(GlobalDefinitions.driver, "XPath", "//a[@data-tab='second']", 5);
                SkillTab.Click();

                // Click Add New
                GlobalDefinitions.WaitForElement(GlobalDefinitions.driver, "XPath", "//div[@data-tab='second']//div[contains(text(),'Add New')]", 5);
                SkillAddNewBtn.Click();

                // Enter Skill
                GlobalDefinitions.WaitForElement(GlobalDefinitions.driver, "XPath", "//input[@placeholder='Add Skill']", 5);
                SkillName.SendKeys(GlobalDefinitions.ExcelLib.ReadData(2, "Skill"));

                // Choose Skill level 0-beginer; 1-intermediate; 2-expert
                SkillDropdownBox.Click();
                new SelectElement(SkillDropdownBox).SelectByText(GlobalDefinitions.ExcelLib.ReadData(2, "Skill Level"));

                // Click Add
                SkillAddBtn.Click();
                Base.test.Log(RelevantCodes.ExtentReports.LogStatus.Pass, "Enter skills successfully");
            } catch (Exception ex)
            {
                Assert.Fail("Test failed to enter/add Skills", ex.Message);
            }
            #endregion

            #region Enter Education
            try
            {
                // Click Education tab
                GlobalDefinitions.WaitForElement(GlobalDefinitions.driver, "XPath", "//a[@data-tab='third']", 5);
                EducationTab.Click();

                // Click Add New
                GlobalDefinitions.WaitForElement(GlobalDefinitions.driver, "XPath", "//div[@data-tab='third']//div[contains(text(),'Add New')]", 5);
                EducationAddNewBtn.Click();

                // Enter University Name
                GlobalDefinitions.WaitForElement(GlobalDefinitions.driver, "XPath", "//input[@name='instituteName']", 5);
                EducationName.SendKeys(GlobalDefinitions.ExcelLib.ReadData(2, "University"));

                // Enter Degree
                EducationDegree.SendKeys(GlobalDefinitions.ExcelLib.ReadData(2, "Degree"));

                // Choose Country
                EducationCountryDropdownBox.Click();
                new SelectElement(EducationCountryDropdownBox).SelectByText(GlobalDefinitions.ExcelLib.ReadData(2, "Country"));

                // Choose  Title 0-Associate; 1-B.A; 2-BArch; 3-BFA; 4-B.Sc...
                EducationTitleDropdownBox.Click();
                new SelectElement(EducationTitleDropdownBox).SelectByText(GlobalDefinitions.ExcelLib.ReadData(2, "Title"));

                // Choose Year
                EducationGraduationYearDropdownBox.Click();
                new SelectElement(EducationGraduationYearDropdownBox).SelectByText(GlobalDefinitions.ExcelLib.ReadData(2, "Graduation Year"));

                // Click Add
                EducationAddBtn.Click();
                Base.test.Log(RelevantCodes.ExtentReports.LogStatus.Pass, "Enter education successfully");
            } catch (Exception ex)
            {
                Assert.Fail("Test failed to enter/add Education", ex.Message);
            }
            #endregion

            #region Enter Certifications
            try
            {
                // Click Certifications tab
                GlobalDefinitions.WaitForElement(GlobalDefinitions.driver, "XPath", "//a[@data-tab='fourth']", 5);
                CertificationTab.Click();

                // Click Add New
                GlobalDefinitions.WaitForElement(GlobalDefinitions.driver, "XPath", "//div[@data-tab='fourth']//div[contains(text(),'Add New')]", 5);
                CertificationAddNewBtn.Click();

                // Enter Certificate name
                GlobalDefinitions.WaitForElement(GlobalDefinitions.driver, "XPath", "//input[@name='certificationName']", 5);
                CertificationName.SendKeys(GlobalDefinitions.ExcelLib.ReadData(2, "Certificate"));

                // Enter Issuing place
                CertificationFrom.SendKeys(GlobalDefinitions.ExcelLib.ReadData(2, "CertifiedFrom"));

                // Choose Year
                CertificationYearDropdownBox.Click();
                new SelectElement(CertificationYearDropdownBox).SelectByText(GlobalDefinitions.ExcelLib.ReadData(2, "Certificate Issuing Year"));

                // Click Add
                CertificationAddBtn.Click();
                Base.test.Log(RelevantCodes.ExtentReports.LogStatus.Pass, "Enter certificate successfully");
            } catch (Exception ex)
            {
                Assert.Fail("Test failed to enter/add Certificate", ex.Message);
            }
            #endregion
        }