Exemplo n.º 1
0
 def setUp(self) -> None:
     self.driver = webdriver.Chrome(executable_path=CHROME_EXECUTABLE_PATH)
     self.driver.get(DOMAIN)
     self.wait = WebDriverWait(self.driver, 2)
     self.login_page = LoginPage(self.driver)
     self.personal_details_page = PersonalDetailsPage(self.driver)
     self.dependents_page = DependentsPage(self.driver)
Exemplo n.º 2
0
 def setUp(self):
     self.driver = webdriver.Chrome(executable_path=CHROME_EXECUTABLE_PATH)
     self.driver.get(DOMAIN)
     self.wait = WebDriverWait(self.driver, 2)
     self.login_page = LoginPage(self.driver)
     self.personal_details_page = PersonalDetailsPage(self.driver)
     self.add_photograph_page = AddPhotographPage(self.driver)
Exemplo n.º 3
0
class DependentsTestCase(unittest.TestCase):


    def setUp(self) -> None:
        self.driver = webdriver.Chrome(executable_path=CHROME_EXECUTABLE_PATH)
        self.driver.get(DOMAIN)
        self.wait = WebDriverWait(self.driver, 2)
        self.login_page = LoginPage(self.driver)
        self.personal_details_page = PersonalDetailsPage(self.driver)
        self.dependents_page = DependentsPage(self.driver)

    def tearDown(self) -> None:
        self.driver.quit()

    def test_26_add_dependent(self):
        driver = self.driver

        self.login_page.login()

        sleep(1)
        self.personal_details_page.goto_page()
        self.dependents_page.dependents()

        sleep(1)
        self.dependents_page.add_dependents()
        self.dependents_page.dependents_name()
        Select(driver.find_element_by_id('dependent_relationshipType')).select_by_visible_text("Child")

        self.dependents_page.dependents_date_of_birth()
        self.dependents_page.save_dependents()

        self.wait.until(expected_conditions.text_to_be_present_in_element((By.CSS_SELECTOR, ".message.success"),
                                                                          'Successfully Saved'))

        dependent_name = driver.find_element_by_xpath('//*[@id="dependent_list"]/tbody/tr/td[2]/a').text

        self.assertEqual("Mark Sayfou", dependent_name)

        # clean up
        self.dependents_page.check_all_dependents()
        self.dependents_page.del_dependents()
    def test_27_dependent_name_required(self):
        driver = self.driver
        self.login_page.login()

        sleep(1)
        self.personal_details_page.goto_page()
        self.dependents_page.dependents()

        sleep(1)
        self.dependents_page.add_dependents()

        Select(driver.find_element_by_id('dependent_relationshipType')).select_by_visible_text("Child")

        self.dependents_page.dependents_date_of_birth()
        self.dependents_page.save_dependents()

        self.assertTrue(driver.find_element_by_xpath('//*[@id="frmEmpDependent"]/fieldset/ol/li[1]/span').text == "Required")


    def test_28_dependent_relationship_required(self):
        driver = self.driver

        self.login_page.login()

        sleep(1)
        self.personal_details_page.goto_page()
        self.dependents_page.dependents()

        sleep(1)
        self.dependents_page.add_dependents()
        self.dependents_page.dependents_name()
        self.dependents_page.dependents_date_of_birth()
        self.dependents_page.save_dependents()

        self.assertTrue(driver.find_element_by_xpath('//*[@id="frmEmpDependent"]/fieldset/ol/li[2]/span').text == "Required")

    def test_29_add_dependent_other_relationship(self):
        driver = self.driver

        self.login_page.login()

        sleep(1)
        self.personal_details_page.goto_page()
        self.dependents_page.dependents()
        sleep(1)
        self.dependents_page.add_dependents()
        self.dependents_page.dependents_name()
        Select(driver.find_element_by_id('dependent_relationshipType')).select_by_visible_text("Other")

        self.dependents_page.dependents_relatioship()
        self.dependents_page.dependents_date_of_birth()
        self.dependents_page.save_dependents()
        self.wait.until(expected_conditions.text_to_be_present_in_element((By.CSS_SELECTOR, ".message.success"),
                                                                          'Successfully Saved'))

        dependent_name = driver.find_element_by_xpath('//*[@id="dependent_list"]/tbody/tr/td[2]/a').text

        self.assertEqual("Mark Sayfou", dependent_name)
        # clean up
        self.dependents_page.check_all_dependents()
        self.dependents_page.del_dependents()

    def test_30_add_dependent_other_specify(self):
        driver = self.driver

        self.login_page.login()

        sleep(1)
        self.personal_details_page.goto_page()
        self.dependents_page.dependents()

        sleep(1)
        self.dependents_page.add_dependents()
        self.dependents_page.dependents_name()

        Select(driver.find_element_by_id('dependent_relationshipType')).select_by_visible_text("Other")

        self.dependents_page.dependents_date_of_birth()
        self.dependents_page.save_dependents()

        self.assertTrue(driver.find_element_by_xpath('//*[@id="relationshipDesc"]/span').text == "Required")

    def test_31_add_dependent(self):
        driver = self.driver

        self.login_page.login()

        sleep(1)
        self.personal_details_page.goto_page()
        self.dependents_page.dependents()

        sleep(1)
        self.dependents_page.add_dependents()
        self.dependents_page.dependents_name()
        Select(driver.find_element_by_id('dependent_relationshipType')).select_by_visible_text("Child")

        self.dependents_page.dependents_date_of_birth()
        self.dependents_page.save_dependents()

        self.wait.until(expected_conditions.text_to_be_present_in_element((By.CSS_SELECTOR, ".message.success"),
                                                                          'Successfully Saved'))
        self.dependents_page.add_dependents()
        self.dependents_page.dependents_name()
        Select(driver.find_element_by_id('dependent_relationshipType')).select_by_visible_text("Child")
        self.dependents_page.dependents_date_of_birth()
        self.dependents_page.save_dependents()
        self.wait.until(expected_conditions.text_to_be_present_in_element((By.CSS_SELECTOR, ".message.success"),
                                                                          'Successfully Saved'))

        dependent_name = driver.find_element_by_xpath('//*[@id="dependent_list"]/tbody/tr/td[2]/a').text

        self.assertEqual("Mark Sayfou", dependent_name)

        # clean up
        self.dependents_page.check_all_dependents()
        self.dependents_page.del_dependents()

    def test_32_delete_dependent(self):
        driver = self.driver

        self.login_page.login()
        sleep(1)
        self.personal_details_page.goto_page()
        self.dependents_page.dependents()

        sleep(1)
        self.dependents_page.add_dependents()
        self.dependents_page.dependents_name()

        Select(driver.find_element_by_id('dependent_relationshipType')).select_by_visible_text("Child")
        self.dependents_page.dependents_date_of_birth()
        self.dependents_page.save_dependents()

        self.wait.until(expected_conditions.text_to_be_present_in_element((By.CSS_SELECTOR, ".message.success"),
                                                                          'Successfully Saved'))

        sleep(1)

        driver.find_element_by_xpath('//*[@id="dependent_list"]/tbody/tr[1]/td[1]/input').click()
        driver.find_element_by_id('delDependentBtn').click()

        self.wait.until(expected_conditions.text_to_be_present_in_element((By.CSS_SELECTOR, ".message.success"),'Successfully Deleted'))

    def test_33_delete_all_dependents(self):
        driver = self.driver

        self.login_page.login()
        sleep(1)
        self.personal_details_page.goto_page()
        self.dependents_page.dependents()
        sleep(1)
        self.dependents_page.add_dependents()
        self.dependents_page.dependents_name()
        Select(driver.find_element_by_id('dependent_relationshipType')).select_by_visible_text("Child")
        self.dependents_page.dependents_date_of_birth()
        self.dependents_page.save_dependents()

        self.wait.until(expected_conditions.text_to_be_present_in_element((By.CSS_SELECTOR, ".message.success"),
                                                                          'Successfully Saved'))

        sleep(1)
        self.dependents_page.check_all_dependents()
        self.dependents_page.del_dependents()

        self.wait.until(expected_conditions.text_to_be_present_in_element((By.CSS_SELECTOR, ".message.success"),
                                                                          'Successfully Deleted'))
class EmergencyContactsTestCase(unittest.TestCase):
    def setUp(self):
        self.driver = webdriver.Chrome(executable_path=CHROME_EXECUTABLE_PATH)
        self.driver.get(DOMAIN)
        self.wait = WebDriverWait(self.driver, 2)
        self.login_page = LoginPage(self.driver)
        self.personal_details_page = PersonalDetailsPage(self.driver)
        self.add_photograph_page = AddPhotographPage(self.driver)
        self.contact_details_page = ContactDetailsPage(self.driver)
        self.emergency_contacts_page = EmergencyContactsPage(self.driver)

    def tearDown(self):
        self.driver.quit()

    def test_16_add_emergency_contacts(self):
        name = 'Emer'
        relationship = 'wife'
        home_phone = '123456789'
        mobile_phone = '987654321'
        work_phone = '123366654'

        self.login_page.login()
        self.login_page.get_welcome_massage()
        self.personal_details_page.goto_page()
        self.emergency_contacts_page.goto_page()
        self.emergency_contacts_page.add_contact_button()
        self.emergency_contacts_page.set_name(name)
        self.emergency_contacts_page.set_relationship(relationship)
        self.emergency_contacts_page.set_home_phone(home_phone)
        self.emergency_contacts_page.set_mobile_phone(mobile_phone)
        self.emergency_contacts_page.set_work_phone(work_phone)
        self.emergency_contacts_page.save_button()

        self.wait.until(
            expected_conditions.text_to_be_present_in_element(
                (By.CSS_SELECTOR, ".message.success"), 'Successfully Saved'))
        table_name = self.driver.find_element_by_xpath(
            '//*[@id="emgcontact_list"]/tbody/tr[1]/td[2]/a')
        self.assertTrue(table_name.text == name)

        # deleting created emergency contact
        self.driver.find_element_by_css_selector("td>input").click()
        self.driver.find_element_by_id("delContactsBtn").click()
        self.wait.until(
            expected_conditions.text_to_be_present_in_element(
                (By.CSS_SELECTOR, ".message.success"), 'Successfully Deleted'))

    def test_17_emergency_name_requered(self):
        driver = self.driver
        relationship = 'wife'
        home_phone = '123456789'
        mobile_phone = '987654321'
        work_phone = '123366654'

        self.login_page.login()
        self.login_page.get_welcome_massage()
        self.personal_details_page.goto_page()
        self.emergency_contacts_page.goto_page()
        self.emergency_contacts_page.add_contact_button()
        self.emergency_contacts_page.set_relationship(relationship)
        self.emergency_contacts_page.set_home_phone(home_phone)
        self.emergency_contacts_page.set_mobile_phone(mobile_phone)
        self.emergency_contacts_page.set_work_phone(work_phone)
        self.emergency_contacts_page.save_button()

        self.assertTrue(
            driver.find_element_by_xpath(
                '//*[@id="frmEmpEmgContact"]/fieldset/ol/li[1]/span').text ==
            'Required')

    def test_18_emergency_relationship_requered(self):
        driver = self.driver

        name = 'Emer'
        home_phone = '123456789'
        mobile_phone = '987654321'
        work_phone = '123366654'

        self.login_page.login()
        self.login_page.get_welcome_massage()
        self.personal_details_page.goto_page()
        self.emergency_contacts_page.goto_page()
        self.emergency_contacts_page.add_contact_button()
        self.emergency_contacts_page.set_name(name)
        self.emergency_contacts_page.set_home_phone(home_phone)
        self.emergency_contacts_page.set_mobile_phone(mobile_phone)
        self.emergency_contacts_page.set_work_phone(work_phone)
        self.emergency_contacts_page.save_button()

        self.assertTrue(
            driver.find_element_by_xpath(
                '//*[@id="frmEmpEmgContact"]/fieldset/ol/li[2]/span').text ==
            'Required')

    def test_19_emergency_one_phone_enough(self):
        name = 'Emer'
        relationship = 'wife'
        home_phone = '123456789'

        self.login_page.login()
        self.login_page.get_welcome_massage()
        self.personal_details_page.goto_page()
        self.emergency_contacts_page.goto_page()
        self.emergency_contacts_page.add_contact_button()
        self.emergency_contacts_page.set_name(name)
        self.emergency_contacts_page.set_relationship(relationship)
        self.emergency_contacts_page.set_home_phone(home_phone)
        self.emergency_contacts_page.save_button()

        self.wait.until(
            expected_conditions.text_to_be_present_in_element(
                (By.CSS_SELECTOR, ".message.success"), 'Successfully Saved'))

    def test_20_emergency_one_phone_requered(self):
        driver = self.driver
        name = 'Emer'
        relationship = 'wife'

        self.login_page.login()
        self.login_page.get_welcome_massage()
        self.personal_details_page.goto_page()
        self.emergency_contacts_page.goto_page()
        self.emergency_contacts_page.add_contact_button()
        self.emergency_contacts_page.set_name(name)
        self.emergency_contacts_page.set_relationship(relationship)
        self.emergency_contacts_page.save_button()

        self.assertTrue(
            driver.find_element_by_xpath(
                '//*[@id="frmEmpEmgContact"]/fieldset/ol/li[3]/span').text ==
            'At least one phone number is required')

    def test_21_add_multiply_emg_contacts(self):
        name = 'Emer'
        relationship = 'wife'
        home_phone = '123456789'
        mobile_phone = '987654321'
        work_phone = '123366654'

        self.login_page.login()
        self.login_page.get_welcome_massage()
        self.personal_details_page.goto_page()
        self.emergency_contacts_page.goto_page()
        self.emergency_contacts_page.add_contact_button()
        self.emergency_contacts_page.set_name(name)
        self.emergency_contacts_page.set_relationship(relationship)
        self.emergency_contacts_page.set_home_phone(home_phone)
        self.emergency_contacts_page.set_mobile_phone(mobile_phone)
        self.emergency_contacts_page.set_work_phone(work_phone)
        self.emergency_contacts_page.save_button()

        self.wait.until(
            expected_conditions.text_to_be_present_in_element(
                (By.CSS_SELECTOR, ".message.success"), 'Successfully Saved'))

        self.emergency_contacts_page.add_contact_button()
        self.emergency_contacts_page.set_name(name)
        self.emergency_contacts_page.set_relationship(relationship)
        self.emergency_contacts_page.set_home_phone(home_phone)
        self.emergency_contacts_page.set_mobile_phone(mobile_phone)
        self.emergency_contacts_page.set_work_phone(work_phone)
        self.emergency_contacts_page.save_button()
        self.wait.until(
            expected_conditions.text_to_be_present_in_element(
                (By.CSS_SELECTOR, ".message.success"), 'Successfully Saved'))
        # deleting all emergency contacts
        self.driver.find_element_by_id('checkAll').click()
        self.driver.find_element_by_id("delContactsBtn").click()
        self.wait.until(
            expected_conditions.text_to_be_present_in_element(
                (By.CSS_SELECTOR, ".message.success"), 'Successfully Deleted'))

    def test_22_delete_emg_contacts(self):

        name = 'Emer'
        relationship = 'wife'
        home_phone = '123456789'

        self.login_page.login()
        self.login_page.get_welcome_massage()
        self.personal_details_page.goto_page()
        self.emergency_contacts_page.goto_page()
        self.emergency_contacts_page.add_contact_button()
        self.emergency_contacts_page.set_name(name)
        self.emergency_contacts_page.set_relationship(relationship)
        self.emergency_contacts_page.set_home_phone(home_phone)
        self.emergency_contacts_page.save_button()

        self.wait.until(
            expected_conditions.text_to_be_present_in_element(
                (By.CSS_SELECTOR, ".message.success"), 'Successfully Saved'))

        self.driver.find_element_by_css_selector("td>input").click()
        self.driver.find_element_by_id("delContactsBtn").click()
        self.wait.until(
            expected_conditions.text_to_be_present_in_element(
                (By.CSS_SELECTOR, ".message.success"), 'Successfully Deleted'))

    def test_23_add_attachment_emg_contacts(self):
        file_path = Pdf_file_path

        self.login_page.login()
        self.login_page.get_welcome_massage()
        self.personal_details_page.goto_page()
        self.emergency_contacts_page.goto_page()
        self.emergency_contacts_page.add_attachment_button()
        self.emergency_contacts_page.choose_file(file_path)
        self.emergency_contacts_page.upload_button()

        self.wait.until(
            expected_conditions.text_to_be_present_in_element(
                (By.CSS_SELECTOR, ".message.success"), 'Successfully Saved'))
        # cleanup_deleting attachment
        self.driver.find_element_by_css_selector(
            "#tblAttachments > tbody > tr.odd > td.center > input").click()
        self.driver.find_element_by_id("btnDeleteAttachment").click()
        self.wait.until(
            expected_conditions.text_to_be_present_in_element(
                (By.CSS_SELECTOR, ".message.success"), 'Successfully Deleted'))

    def test_24_delete_attachment_emg_contacts(self):
        file_path = Pdf_file_path

        self.login_page.login()
        self.login_page.get_welcome_massage()
        self.personal_details_page.goto_page()
        self.emergency_contacts_page.goto_page()
        self.emergency_contacts_page.add_attachment_button()
        self.emergency_contacts_page.choose_file(file_path)
        self.emergency_contacts_page.upload_button()

        self.wait.until(
            expected_conditions.text_to_be_present_in_element(
                (By.CSS_SELECTOR, ".message.success"), 'Successfully Saved'))

        self.driver.find_element_by_css_selector(
            "#tblAttachments > tbody > tr.odd > td.center > input").click()
        self.driver.find_element_by_id("btnDeleteAttachment").click()
        self.wait.until(
            expected_conditions.text_to_be_present_in_element(
                (By.CSS_SELECTOR, ".message.success"), 'Successfully Deleted'))

    def test_25_add_attachment_large_size(self):
        file_path = JPG_2_Mb_path

        self.login_page.login()
        self.login_page.get_welcome_massage()
        self.personal_details_page.goto_page()
        self.emergency_contacts_page.goto_page()
        self.emergency_contacts_page.add_attachment_button()
        self.emergency_contacts_page.choose_file(file_path)
        self.emergency_contacts_page.upload_button()

        self.assertEqual(
            '413 Request Entity Too Large',
            self.driver.find_element_by_xpath('/html/body/center[1]/h1').text)
Exemplo n.º 5
0
class PersonalDetailsTestCase(unittest.TestCase):
    def setUp(self):
        self.driver = webdriver.Chrome(executable_path=CHROME_EXECUTABLE_PATH)
        self.driver.get(DOMAIN)
        self.login_page = LoginPage(self.driver)
        self.personal_details_page = PersonalDetailsPage(self.driver)

    def tearDown(self):
        self.driver.quit()

    def test_01_see_personal_details(self):
        driver = self.driver
        self.login_page.login()
        self.login_page.get_welcome_massage()
        self.personal_details_page.goto_page()

        self.assertEqual(
            "Personal Details",
            driver.find_element_by_xpath(
                "//*[@id='pdMainContainer']/div[1]/h1").text)

    def test_02_edit_personal_details(self):
        driver = self.driver
        input_middle_name = 'Richard'
        employee_id = '101010'
        other_id = '033303'
        nick_name = 'Rick'
        military_status = 'N/A'

        self.login_page.login()
        self.login_page.get_welcome_massage()
        self.personal_details_page.goto_page()
        self.personal_details_page.edit_button()
        self.personal_details_page.setup_middle_name(input_middle_name)
        self.personal_details_page.setup_emloyee_id(employee_id)
        self.personal_details_page.setup_other_id(other_id)
        self.personal_details_page.setup_emp_mick_name(nick_name)
        self.personal_details_page.setup_military_status(military_status)
        self.personal_details_page.save_button()
        self.personal_details_page.get_success_message()

        employee_full = driver.find_element_by_xpath(
            '//*[@id="profile-pic"]/h1').text
        self.assertTrue(input_middle_name in employee_full)

    def test_03_edit_restricted_personal_details(self):
        driver = self.driver
        input_ssn = '50001000'
        driver_license_num = '002002002'
        sin_number = '9998765'
        date_of_birth = '03-09-1985'
        marital_text = 'Married'

        self.login_page.login()
        self.login_page.get_welcome_massage()
        self.personal_details_page.goto_page()
        self.personal_details_page.edit_button()
        self.personal_details_page.set_driver_license_num(driver_license_num)
        self.personal_details_page.set_sin_number(sin_number)
        self.personal_details_page.set_ssn_number(input_ssn)
        self.personal_details_page.set_smoker_radio_button()
        self.personal_details_page.set_date_of_birth(date_of_birth)
        self.personal_details_page.select_marital_status(marital_text)
        self.personal_details_page.save_button()
        self.personal_details_page.get_success_message()

        value_snn = driver.find_element_by_id(
            'personal_txtNICNo').get_attribute('value')
        self.assertEqual(input_ssn, value_snn)
Exemplo n.º 6
0
 def setUp(self):
     self.driver = webdriver.Chrome(executable_path=CHROME_EXECUTABLE_PATH)
     self.driver.get(DOMAIN)
     self.login_page = LoginPage(self.driver)
     self.personal_details_page = PersonalDetailsPage(self.driver)
Exemplo n.º 7
0
class AddPhotoTestCase(unittest.TestCase):
    def setUp(self):
        self.driver = webdriver.Chrome(executable_path=CHROME_EXECUTABLE_PATH)
        self.driver.get(DOMAIN)
        self.wait = WebDriverWait(self.driver, 2)
        self.login_page = LoginPage(self.driver)
        self.personal_details_page = PersonalDetailsPage(self.driver)
        self.add_photograph_page = AddPhotographPage(self.driver)

    def tearDown(self):
        self.driver.quit()

    def test_04_add_valid_photo(self):
        file_path = JPG_500_kb_path
        self.login_page.login()
        self.login_page.get_welcome_massage()
        self.personal_details_page.goto_page()
        self.add_photograph_page.emloyee_picture()
        self.add_photograph_page.chose_file(file_path)
        self.add_photograph_page.upload_button()

        self.wait.until(
            expected_conditions.text_to_be_present_in_element(
                (By.CSS_SELECTOR, ".message.success"),
                'Successfully Uploaded'))

    def test_05_add_1_1mb_photo(self):
        file_path = JPG_1_Mb_path
        self.login_page.login()
        self.login_page.get_welcome_massage()
        self.personal_details_page.goto_page()
        self.add_photograph_page.emloyee_picture()
        self.add_photograph_page.chose_file(file_path)
        self.add_photograph_page.upload_button()

        self.wait.until(
            expected_conditions.text_to_be_present_in_element(
                (By.CSS_SELECTOR, ".message.warning"),
                'Failed to Save: File Size Exceeded'))

    def test_06_add_more_1mb_photo(self):
        file_path = JPG_2_Mb_path
        self.login_page.login()
        self.login_page.get_welcome_massage()
        self.personal_details_page.goto_page()
        self.add_photograph_page.emloyee_picture()
        self.add_photograph_page.chose_file(file_path)
        self.add_photograph_page.upload_button()

        crash_message = self.driver.find_element_by_xpath(
            '/html/body/center[1]/h1').text
        self.assertEqual('413 Request Entity Too Large', crash_message)

    def test_07_add_invalid_format_photo(self):
        file_path = Py_file_path
        self.login_page.login()
        self.login_page.get_welcome_massage()
        self.personal_details_page.goto_page()
        self.add_photograph_page.emloyee_picture()
        self.add_photograph_page.chose_file(file_path)
        self.add_photograph_page.upload_button()

        #self.wait.until(expected_conditions.presence_of_element_located((By.CSS_SELECTOR, ".message.warning")))
        self.wait.until(
            expected_conditions.text_to_be_present_in_element(
                (By.CSS_SELECTOR, ".message.warning"),
                'Failed to Save: File Type Not Allowed'))

    """
Exemplo n.º 8
0
class ContactDetailsTestCase(unittest.TestCase):
    def setUp(self) -> None:
        self.driver = webdriver.Chrome(executable_path=CHROME_EXECUTABLE_PATH)
        self.driver.get(DOMAIN)
        self.wait = WebDriverWait(self.driver, 2)
        self.login_page = LoginPage(self.driver)
        self.personal_details_page = PersonalDetailsPage(self.driver)
        self.contact_details_page = ContactDetailsPage(self.driver)
        self.add_photograph_page = AddPhotographPage(self.driver)

    def tearDown(self) -> None:
        self.driver.quit()

    def test_08_contact_details(self):

        driver = self.driver
        self.login_page.login()
        sleep(1)
        self.personal_details_page.goto_page()
        self.contact_details_page.contact()
        sleep(1)

        page_title = driver.find_element_by_xpath(
            '//*[@id="contact-details"]/div[2]/div[1]/h1').text
        self.assertEqual('Contact Details', page_title)

    def test_09_is_contact_details_editable(self):
        driver = self.driver
        self.login_page.login()
        self.personal_details_page.goto_page()
        self.contact_details_page.contact()
        self.contact_details_page.save_button()

        status = driver.find_element_by_id('contact_street1').is_enabled()

        print('Text Fields in Contact Details can be editable: ', status)

        self.assertTrue(status)

    def test_10_contact_details_edit(self):
        driver = self.driver
        address_1 = 'address1_1234!@#$'
        address_2 = 'address2_f1234!@#$'
        city = 'city_asdf1234!@#$'
        state_province = 'state_asdf1234!@#$'
        zip_code = 'zip1234!@#$'
        self.login_page.login()
        self.personal_details_page.goto_page()
        self.contact_details_page.contact()
        sleep(1)
        #
        self.contact_details_page.save_button()
        # setup street_1
        self.contact_details_page.setup_address_1(address_1)
        # setup street_2
        self.contact_details_page.setup_address_2(address_2)
        # setup city
        self.contact_details_page.setup_city(city)
        self.contact_details_page.setup_state_province(state_province)
        self.contact_details_page.setup_zip_code(zip_code)

        Select(driver.find_element_by_id('contact_country')).select_by_index(5)

        self.contact_details_page.save_button()
        self.wait.until(
            expected_conditions.presence_of_element_located(
                (By.CSS_SELECTOR, ".message.success")))
        self.wait.until(
            expected_conditions.text_to_be_present_in_element(
                (By.CSS_SELECTOR, ".message.success"), 'Successfully Saved'))

        input_city = driver.find_element_by_id('contact_city')
        value_city = input_city.get_attribute('value')

        self.assertEqual(city, value_city)

    def test_11_contact_zip_10(self):
        driver = self.driver
        zipcode = '1234567890'
        self.login_page.login()

        sleep(1)
        self.personal_details_page.goto_page()
        self.contact_details_page.contact()

        sleep(1)
        self.contact_details_page.save_button()
        self.contact_details_page.setup_zipcode(zipcode)
        self.contact_details_page.save_button()
        #self.wait.until(expected_conditions.presence_of_element_located((By.CSS_SELECTOR, ".message.success")))
        self.wait.until(
            expected_conditions.text_to_be_present_in_element(
                (By.CSS_SELECTOR, ".message.success"), 'Successfully Saved'))

        input_zip = driver.find_element_by_id('contact_emp_zipcode')
        value_zip_code = input_zip.get_attribute('value')

        self.assertEqual(zipcode, value_zip_code)

    def test_11_contact_zip_more_10(self):
        driver = self.driver
        zip_code = '123456789123456789'
        self.login_page.login()

        sleep(1)

        self.personal_details_page.goto_page()
        self.contact_details_page.contact()

        sleep(1)

        self.contact_details_page.save_button()

        self.contact_details_page.setup_zip_code(zip_code)

        self.contact_details_page.save_button()

        #self.wait.until(expected_conditions.presence_of_element_located((By.CSS_SELECTOR, ".message.success")))
        self.wait.until(
            expected_conditions.text_to_be_present_in_element(
                (By.CSS_SELECTOR, ".message.success"), 'Successfully Saved'))

        input_zip = driver.find_element_by_id('contact_emp_zipcode')
        value_zip_code = input_zip.get_attribute('value')
        number_characters = len(value_zip_code)

        self.assertTrue(number_characters <= 10)

    def test_12_contact_valid_phone(self):
        driver = self.driver
        phone_number = '1234567890+ - / ( )'
        self.login_page.login()

        sleep(1)

        self.personal_details_page.goto_page()
        self.contact_details_page.contact()

        sleep(1)

        self.contact_details_page.save_button()
        self.contact_details_page.set_home_phone(phone_number)
        self.contact_details_page.set_mobile_phone(phone_number)
        self.contact_details_page.set_work_phone(phone_number)

        self.contact_details_page.save_button()

        # self.wait.until(expected_conditions.presence_of_element_located((By.CSS_SELECTOR, ".message.success")))
        self.wait.until(
            expected_conditions.text_to_be_present_in_element(
                (By.CSS_SELECTOR, ".message.success"), 'Successfully Saved'))

        input_num = driver.find_element_by_id('contact_emp_mobile')
        value_mobile = input_num.get_attribute('value')

        self.assertEqual(phone_number, value_mobile)

    def test_13_contact_invalid_phone(self):
        driver = self.driver
        phone_number = 'abc!4567890+ - / ( )'
        self.login_page.login()
        sleep(1)

        self.personal_details_page.goto_page()
        self.contact_details_page.contact()

        sleep(1)

        self.contact_details_page.save_button()
        self.contact_details_page.set_home_phone(phone_number)
        self.contact_details_page.set_mobile_phone(phone_number)
        self.contact_details_page.set_work_phone(phone_number)

        self.contact_details_page.save_button()

        self.assertTrue(
            driver.find_element_by_xpath(
                '//*[@id="frmEmpContactDetails"]/fieldset/ol[2]/li[1]/span').
            text == 'Allows numbers and only + - / ( )')

    def test_14_contact_valid_email(self):
        driver = self.driver
        work_email = '*****@*****.**'
        other_email = '*****@*****.**'
        self.login_page.login()

        sleep(1)

        self.personal_details_page.goto_page()
        self.contact_details_page.contact()

        sleep(1)

        self.contact_details_page.save_button()
        self.contact_details_page.set_work_email(work_email)
        self.contact_details_page.set_other_email(other_email)

        self.contact_details_page.save_button()

        value_work_email = driver.find_element_by_id(
            'contact_emp_work_email').get_attribute('value')
        value_other_email = driver.find_element_by_id(
            'contact_emp_oth_email').get_attribute('value')

        self.assertEqual(work_email, value_work_email)
        self.assertEqual(other_email, value_other_email)

    def test_15_contact_invalid_email(self):
        driver = self.driver
        work_email = 'work@test'
        other_email = '@test.test'
        self.login_page.login()

        sleep(1)

        self.personal_details_page.goto_page()
        self.contact_details_page.contact()

        sleep(1)

        self.contact_details_page.edit_button()
        self.contact_details_page.set_work_email(work_email)
        self.contact_details_page.set_other_email(other_email)

        self.contact_details_page.save_button()

        self.assertTrue(
            driver.find_element_by_xpath(
                '//*[@id="frmEmpContactDetails"]/fieldset/ol[3]/li[1]/span').
            text == 'Expected format: [email protected]')

    def test_15_contact_same_email(self):
        driver = self.driver
        work_email = '*****@*****.**'
        self.login_page.login()

        sleep(1)

        self.personal_details_page.goto_page()
        self.contact_details_page.contact()
        sleep(1)

        self.contact_details_page.edit_button()

        self.contact_details_page.set_work_email(work_email)
        self.contact_details_page.set_other_email(work_email)

        self.contact_details_page.save_button()

        self.assertTrue(
            driver.find_element_by_xpath(
                '//*[@id="frmEmpContactDetails"]/fieldset/ol[3]/li[2]/span').
            text == 'Already exists')