Ejemplo n.º 1
0
class ApplyPage:
    # Job Page
    logger = LogGen.loggen()
    explicit_wait = ReadConfig.getexplicitwait()
    apply_locator = Applyjobs()
    baseURL = ReadConfig.getApplicationURL()

    def __init__(self, driver):
        self.driver = driver
        self.ui_helper = UIHelper(self.driver)

    def verify_job_and_apply(self, pstr_button_name):
        """  Description:
                    |  This method will verify job description and apply button
                :param pstr_button_name: Name of the Apply button E.g: Apply, Apply here, Apply Now
                :type pstr_button_name: String

                :return: boolean

                                        """
        bln_job_result = False
        bln_button = False
        pstr_job = self.ui_helper.is_element_displayed(
            self.apply_locator.pstr_job_desc)
        if pstr_job:
            lst_web_ele = self.driver.find_elements_by_xpath(
                self.apply_locator.pstr_job_desc.split('=', 1)[1])
            str_job = lst_web_ele[1].text
            if str_job != ' ' or str_job is not None:
                bln_job_result = True
                self.logger.info("****Job description found****")
            else:
                self.logger.info("****Job description not found****")
                self.driver.save_screenshot("." + os.sep + "Screenshots" +
                                            os.sep + "test_job_desc_fail.png")
                self.driver.close()
                return False
        pstr_button = self.apply_locator.pstr_apply_button.format(
            pstr_button_name)
        web_ele = self.driver.find_elements_by_xpath(pstr_button)
        if web_ele is not None:
            bln_button = True
            self.logger.info("****Apply button found****")
        else:
            self.logger.info("****Apply button found not found****")
            self.driver.save_screenshot("." + os.sep + "Screenshots" + os.sep +
                                        "test_apply_fail.png")
            self.driver.close()
            return False
        return bln_button or bln_job_result
Ejemplo n.º 2
0
class LoginPage(Loginlocators, Homepagelocators, LogGen):
    # Login Page
    def __init__(self, driver):
        self.driver = driver
        self.ui_helper = UIHelper(self.driver)

    def setUserName(self, username):
        bln_email = self.ui_helper.is_element_displayed(
            self.pstr_email_address)
        if bln_email:
            self.loggen().info("****Entering Email address****")
            self.ui_helper.type(self.pstr_email_address, username)
            self.loggen().info("****Entered Email address***  " + username)
            assert True
        else:
            self.loggen().info("****Email address box not present****")
            self.driver.save_screenshot("." + os.sep + "Screenshots" + os.sep +
                                        "test_setusername.png")
            self.driver.close()
            assert False

    def setPassword(self, password):
        bln_password = self.ui_helper.is_element_displayed(self.pstr_password)
        if bln_password:
            self.loggen().info("****Entering password****")
            self.ui_helper.type(self.pstr_password, password)
            self.loggen().info("****Entered Password****  " + password)
            assert True
        else:
            self.loggen().info("****Password box not present****")
            self.driver.save_screenshot("." + os.sep + "Screenshots" + os.sep +
                                        "test_setpassword.png")
            self.driver.close()
            assert False

    def clickLogin(self):
        bln_submit = self.ui_helper.is_element_displayed(
            self.pstr_submit_button)
        if bln_submit:
            self.loggen().info("****Clicking Submit button****")
            self.ui_helper.click(self.pstr_submit_button)
            self.loggen().info("****Submit button clicked****")
            assert True
        else:
            self.loggen().info("****Submit Button not present****")
            self.driver.save_screenshot("." + os.sep + "Screenshots" + os.sep +
                                        "test_login_submit.png")
            self.driver.close()
            assert False

    def verify_loginpage(self):
        bln_result = False
        self.loggen().info("****Verifying Login page****")
        bln_sprintboard = self.ui_helper.is_element_displayed(
            self.pstr_verify_login_page)
        bln_email = self.ui_helper.is_element_displayed(
            self.pstr_email_address)
        if bln_sprintboard and bln_email:
            bln_result = True
            self.loggen().info("****User is on the login page****")
        else:
            self.loggen().info("****User is not on the login page****")
            self.driver.save_screenshot("." + os.sep + "Screenshots" + os.sep +
                                        "test_loginpage.png")
            self.driver.close()
        return bln_result

    def verify_homepage(self):
        self.loggen().info("****Verifying Home page****")
        bln_homepage = self.ui_helper.is_element_displayed(
            self.pstr_verify_home_page)
        if bln_homepage:
            bln_homepage = True
            self.loggen().info("****User is on the home page****")
        else:
            self.loggen().info("****User is not on the home page****")
            self.driver.save_screenshot("." + os.sep + "Screenshots" + os.sep +
                                        "test_homepage.png")
            self.driver.close()
        return bln_homepage

    def login(self, username, password):
        """
                                Description:
                                    |  This method allows user to login to application

                                :param username: Name of the user
                                :type username: String
                                :param password: Password of the user
                                :type password: String
                                :return: boolean
                        """
        assert self.verify_loginpage()
        self.setUserName(username)
        self.setPassword(password)
        self.clickLogin()
        bln_homepage = self.verify_homepage()
        return bln_homepage
Ejemplo n.º 3
0
class BoardPage(Loginlocators,Homepagelocators, Boardlocators,LogGen):
    # Board Page
    explicit_wait = ReadConfig.getexplicitwait()

    def __init__(self,driver):
        self.driver=driver
        self.ui_helper = UIHelper(self.driver)


    def go_to_create_board(self):
        bln_createboard_link = self.ui_helper.is_element_displayed(self.pstr_createboard_link)
        if bln_createboard_link:
            self.ui_helper.click(self.pstr_createboard_link)
            self.loggen().info("****Create Board link clicked****")
            assert True
        else:
            self.loggen().info("****Create Board link Not present or clickable****")
            self.driver.save_screenshot("." + os.sep + "Screenshots" + os.sep + "test_login_createBoard_link.png")
            self.driver.close()
            assert False


    def verify_page_header(self,str_pageheader):
        pstr_page_header = self.pstr_page_header.format(str_pageheader)
        bln_page_header = self.ui_helper.is_element_displayed(pstr_page_header)
        if bln_page_header:
            self.loggen().info("****Page Header is Create a Board****")
            return True
        else:
            self.loggen().info("****Page header is different****")
            self.driver.save_screenshot("." + os.sep + "Screenshots" + os.sep + "test_login_createBoard_header.png")
            self.driver.close()
            return False


    def create_board(self,str_session_name, owner, str_succes_message):
        """
                Description:
                    |  This method allows user to create_board

                :param str_session_name: Name of the session
                :type str_session_name: String
                :param owner: Select owner
                :type owner: String
                :param str_succes_message: Success message after board is created
                :type str_succes_message: String
                :return: boolean: if the board is created successfully
        """
        bln_session_name = self.ui_helper.is_element_displayed(self.pstr_input_session_name)
        if bln_session_name:
            self.ui_helper.type(self.pstr_input_session_name,str_session_name)
            self.loggen().info("****Entered session name****   " + str(str_session_name))
        else:
            self.loggen().info("****Unable to enter session name****")
            self.driver.save_screenshot("." + os.sep + "Screenshots" + os.sep + "test_login_createBoard_session.png")
            self.driver.close()
            return False

        bln_owner_drop_down = self.ui_helper.is_element_displayed(self.pstr_owner_drop_down)
        if bln_owner_drop_down:
            self.ui_helper.select_dropdown_value(self.pstr_owner_drop_down,visible_text=owner)
            self.loggen().info("****Selected Owner name****   " + str(owner))
        else:
            self.loggen().info("****Unable to select session name****")
            self.driver.save_screenshot("." + os.sep + "Screenshots" + os.sep + "test_login_createBoard_owner.png")
            self.driver.close()
            return False

        bln_submit_create_board = self.ui_helper.is_element_displayed(self.pstr_createboard_button)
        if bln_submit_create_board:
            self.ui_helper.click(self.pstr_createboard_button)
            self.loggen().info("****Clicked create board button***")
        else:
            self.loggen().info("****Unable to click create board button****")
            self.driver.save_screenshot("." + os.sep + "Screenshots" + os.sep + "test_login_createBoard_button.png")
            self.driver.close()
            return False

        bln_pop_up= self.ui_helper.is_element_displayed(self.pstr_pop_up)
        if bln_pop_up:
            str_text= self.driver.find_element_by_class_name('swal-title').text
            if str_text== str_succes_message:
                self.loggen().info("***Success message verified****")
                return True
            else:
                self.loggen().info("***Success message not verified****" + "Expected message: " + str_succes_message + "Actual message: " + str_text)
                self.driver.save_screenshot("." + os.sep + "Screenshots" + os.sep + "test_login_createBoard_message.png")
                self.driver.close()
                return False
Ejemplo n.º 4
0
class SectorPage:
    # Job Page
    logger = LogGen.loggen()
    explicit_wait = ReadConfig.getexplicitwait()
    sector_locator = Sectorjobs()
    baseURL = ReadConfig.getApplicationURL()

    def __init__(self, driver):
        self.driver = driver
        self.ui_helper = UIHelper(self.driver)

    def verify_sector_page(self, sector_header):
        """  Description:
                    |  This method will verify header of the sector page
                :param sector_header: Name of the sector
                :type sector_header: String

                :return: boolean

                                        """
        sector_header = sector_header + ' jobs'
        pstr_header = self.sector_locator.pstr_sector_head.format(
            sector_header)
        bln_page_header = self.ui_helper.is_element_displayed(pstr_header)
        if bln_page_header:
            self.logger.info("****User is on the Sector Job page****")
        else:
            self.logger.info("****User is not on the Sector Job page****")
            self.driver.save_screenshot("." + os.sep + "Screenshots" + os.sep +
                                        "test_login_sector_job.png")
            self.driver.close()
        return bln_page_header

    def verify_search_criteria(self, pstr_criteria, sector_header):
        """  Description:
                    |  This method will verify search criteria with respect to sector
                :param pstr_criteria: Search criteria E.g. Sectors
                :type pstr_criteria: String
                :param sector_header: Name of the sector
                :type sector_header: String

                :return: boolean

                                        """
        pstr_header = self.sector_locator.pstr_selected_sector.format(
            pstr_criteria, sector_header)
        bln_page_header = self.ui_helper.is_element_displayed(pstr_header)
        if bln_page_header:
            self.logger.info("****User is on the Job page****")
        else:
            self.logger.info("****User is not on the Job page****")
            self.driver.save_screenshot("." + os.sep + "Screenshots" + os.sep +
                                        "test_search_sector.png")
            self.driver.close()
        return bln_page_header

    def verify_and_click_job(self):
        """  Description:
                        |  This method will verify available job list and click on the job
                        :return: None

                                                """
        pstr_job = self.ui_helper.is_element_displayed(
            self.sector_locator.pstr_list_job)
        if pstr_job:
            lst_web_ele = self.driver.find_elements_by_xpath(
                self.sector_locator.pstr_list_job.split('=', 1)[1])
            if lst_web_ele is not None:
                # clicking on the first job
                lst_web_ele[1].click()
                self.logger.info("****Job list returns****")
                self.logger.info("****Job list is clicked****")
                return True
            else:
                self.logger.info("****Job list not returned****")
                self.driver.save_screenshot("." + os.sep + "Screenshots" +
                                            os.sep + "test_job_list.png")
                self.driver.close()
                return False
        else:
            self.logger.info("****Job list not returned****")
            self.driver.save_screenshot("." + os.sep + "Screenshots" + os.sep +
                                        "test_job_list.png")
            self.driver.close()
            return False
Ejemplo n.º 5
0
class BoardPage:
    # Board Page
    login_locators = Loginlocators()
    homepage_locators = Homepagelocators()
    board_locators = Boardlocators
    logger = LogGen.loggen()
    explicit_wait = ReadConfig.getexplicitwait()

    def __init__(self, driver):
        self.driver = driver
        self.ui_helper = UIHelper(self.driver)

    def go_to_create_board(self):
        try:
            bln_createboard_link = self.ui_helper.is_element_displayed(
                self.homepage_locators.pstr_createboard_link)
            if bln_createboard_link:
                self.ui_helper.click(
                    self.homepage_locators.pstr_createboard_link)
                self.logger.info("****Create Board link clicked****")
                assert True
            else:
                self.logger.info(
                    "****Create Board link Not present or clickable****")
                self.driver.save_screenshot("." + os.sep + "Screenshots" +
                                            os.sep +
                                            "test_login_createBoard_link.png")
                self.driver.close()
                assert False
        except Exception as exception_msg:
            self.logger.info(exception_msg)
            self.driver.save_screenshot("." + os.sep + "Screenshots" + os.sep +
                                        "test_login_createBoard_link.png")
            self.driver.close()
            return False

    def verify_page_header(self, str_pageheader):
        try:
            pstr_page_header = self.board_locators.pstr_page_header.format(
                str_pageheader)
            bln_page_header = self.ui_helper.is_element_displayed(
                pstr_page_header)
            if bln_page_header:
                self.logger.info("****Page Header is Create a Board****")
                return True
            else:
                self.logger.info("****Page header is different****")
                self.driver.save_screenshot(
                    "." + os.sep + "Screenshots" + os.sep +
                    "test_login_createBoard_header.png")
                self.driver.close()
                return False
        except Exception as exception_msg:
            self.logger.info(exception_msg)
            self.driver.save_screenshot("." + os.sep + "Screenshots" + os.sep +
                                        "test_login_createBoard_header.png")
            self.driver.close()
            return False

    def create_board(self, str_session_name, owner, str_succes_message):
        try:
            str_text = ''
            bln_session_name = self.ui_helper.is_element_displayed(
                self.board_locators.pstr_input_session_name)
            if bln_session_name:
                self.ui_helper.type(
                    self.board_locators.pstr_input_session_name,
                    str_session_name)
                self.logger.info("****Entered session name****   " +
                                 str(str_session_name))
            else:
                self.logger.info("****Unable to enter session name****")
                self.driver.save_screenshot(
                    "." + os.sep + "Screenshots" + os.sep +
                    "test_login_createBoard_session.png")
                self.driver.close()
                return False

            bln_owner_drop_down = self.ui_helper.is_element_displayed(
                self.board_locators.pstr_owner_drop_down)
            if bln_owner_drop_down:
                self.ui_helper.select_dropdown_value(
                    self.board_locators.pstr_owner_drop_down,
                    visible_text=owner)
                self.logger.info("****Selected Owner name****   " + str(owner))
            else:
                self.logger.info("****Unable to select session name****")
                self.driver.save_screenshot("." + os.sep + "Screenshots" +
                                            os.sep +
                                            "test_login_createBoard_owner.png")
                self.driver.close()
                return False

            bln_submit_create_board = self.ui_helper.is_element_displayed(
                self.board_locators.pstr_createboard_button)
            if bln_submit_create_board:
                self.ui_helper.click(
                    self.board_locators.pstr_createboard_button)
                self.logger.info("****Clicked create board button***")
            else:
                self.logger.info("****Unable to click create board button****")
                self.driver.save_screenshot(
                    "." + os.sep + "Screenshots" + os.sep +
                    "test_login_createBoard_button.png")
                self.driver.close()
                return False

            bln_pop_up = self.ui_helper.is_element_displayed(
                self.board_locators.pstr_pop_up)
            if bln_pop_up:
                str_text = self.driver.find_element_by_class_name(
                    'swal-title').text
                if str_text == str_succes_message:
                    self.logger.info("***Success message verified****")
                    return True
                else:
                    self.logger.info("***Success message not verified****" +
                                     "Expected message: " +
                                     str_succes_message + "Actual message: " +
                                     str_text)
                    self.driver.save_screenshot(
                        "." + os.sep + "Screenshots" + os.sep +
                        "test_login_createBoard_message.png")
                    return False

        except Exception as exception_msg:
            self.logger.info(exception_msg)
            self.driver.save_screenshot("." + os.sep + "Screenshots" + os.sep +
                                        "test_login_createBoard_header.png")
            self.driver.close()
            return False
Ejemplo n.º 6
0
class LoginPage:
    # Login Page
    login_locators = Loginlocators()
    homepage_locators = Homepagelocators()
    board_locators = Boardlocators
    logger = LogGen.loggen()
    explicit_wait = ReadConfig.getexplicitwait()

    def __init__(self, driver):
        self.driver = driver
        self.ui_helper = UIHelper(self.driver)

    def setUserName(self, username):
        try:
            bln_email = self.ui_helper.is_element_displayed(
                self.login_locators.pstr_email_address)
            if bln_email:
                self.logger.info("****Entering Email address****")
                self.ui_helper.type(self.login_locators.pstr_email_address,
                                    username)
                self.logger.info("****Entered Email address***  " + username)
                assert True
            else:
                self.logger.info("****Email address box not present****")
                self.driver.save_screenshot("." + os.sep + "Screenshots" +
                                            os.sep + "test_setusername.png")
                self.driver.close()
                assert False
        except Exception as exception_msg:
            self.logger.info(exception_msg)
            self.driver.save_screenshot("." + os.sep + "Screenshots" + os.sep +
                                        "test_setusername.png")
            self.driver.close()
            assert False

    def setPassword(self, password):
        try:
            bln_password = self.ui_helper.is_element_displayed(
                self.login_locators.pstr_password)
            if bln_password:
                self.logger.info("****Entering password****")
                self.ui_helper.type(self.login_locators.pstr_password,
                                    password)
                self.logger.info("****Entered Password****  " + password)
                assert True
            else:
                self.logger.info("****Password box not present****")
                self.driver.save_screenshot("." + os.sep + "Screenshots" +
                                            os.sep + "test_setpassword.png")
                assert False
        except Exception as exception_msg:
            self.logger.info(exception_msg)
            self.driver.save_screenshot("." + os.sep + "Screenshots" + os.sep +
                                        "test_setpassword.png")
            self.driver.close()
            assert False

    def clickLogin(self):
        try:
            bln_submit = self.ui_helper.is_element_displayed(
                self.login_locators.pstr_submit_button)
            if bln_submit:
                self.logger.info("****Clicking Submit button****")
                self.ui_helper.click(self.login_locators.pstr_submit_button)
                self.logger.info("****Submit button clicked****")
                assert True
            else:
                self.logger.info("****Submit Button not present****")
                self.driver.save_screenshot("." + os.sep + "Screenshots" +
                                            os.sep + "test_login_submit.png")
                self.driver.close()
                assert False
        except Exception as exception_msg:
            self.logger.info(exception_msg)
            self.driver.save_screenshot("." + os.sep + "Screenshots" + os.sep +
                                        "test_login_submit.png")
            self.driver.close()
            assert False

    def verify_loginpage(self):
        try:
            bln_result = False
            self.logger.info("****Verifying Login page****")
            bln_sprintboard = self.ui_helper.is_element_displayed(
                self.login_locators.pstr_verify_login_page)
            bln_email = self.ui_helper.is_element_displayed(
                self.login_locators.pstr_email_address)
            if bln_sprintboard and bln_email:
                bln_result = True
                self.logger.info("****User is on the login page****")
            else:
                self.logger.info("****User is not on the login page****")
                self.driver.save_screenshot("." + os.sep + "Screenshots" +
                                            os.sep + "test_loginpage.png")
                self.driver.close()
            return bln_result
        except Exception as exception_msg:
            self.logger.info(exception_msg)
            self.driver.save_screenshot("." + os.sep + "Screenshots" + os.sep +
                                        "test_loginpage.png")
            self.driver.close()
            return False

    def verify_homepage(self):
        try:
            self.logger.info("****Verifying Home page****")
            bln_homepage = self.ui_helper.is_element_displayed(
                self.homepage_locators.pstr_verify_home_page)
            if bln_homepage:
                bln_homepage = True
                self.logger.info("****User is on the home page****")
            else:
                self.logger.info("****User is not on the home page****")
                self.driver.save_screenshot("." + os.sep + "Screenshots" +
                                            os.sep + "test_homepage.png")
                self.driver.close()
            return bln_homepage
        except Exception as exception_msg:
            self.logger.info(exception_msg)
            self.driver.save_screenshot("." + os.sep + "Screenshots" + os.sep +
                                        "test_homepage.png")
            self.driver.close()
            return False

    def login(self, username, password):
        try:
            assert self.verify_loginpage()
            self.setUserName(username)
            self.setPassword(password)
            self.clickLogin()
            bln_homepage = self.verify_homepage()
            return bln_homepage
        except Exception as exception_msg:
            self.logger.info(exception_msg)
            self.driver.save_screenshot("." + os.sep + "Screenshots" + os.sep +
                                        "test_login_fail.png")
            self.driver.close()
            return False
Ejemplo n.º 7
0
class CreateCard:
    # Board Page Page
    card_locators = cardlocators()
    logger = LogGen.loggen()
    explicit_wait = ReadConfig.getexplicitwait()

    def __init__(self, driver):
        self.driver = driver
        self.ui_helper = UIHelper(self.driver)

    def clickCard(self, pstr_type):
        try:
            pstr_card_type = self.card_locators.pstr_type_card.format(
                pstr_type)
            bln_card_type = self.ui_helper.is_element_displayed(pstr_card_type)
            if bln_card_type:
                self.ui_helper.click(pstr_card_type)
                self.logger.info("****Card type is clicked****  " + pstr_type)
                assert True
            else:
                self.logger.info(
                    "****card type not found or not clickable****")
                self.driver.save_screenshot("." + os.sep + "Screenshots" +
                                            os.sep +
                                            "test_login_createCard.png")
                self.driver.close()
                assert False
        except Exception as exception_msg:
            self.logger.info(exception_msg)
            self.driver.save_screenshot("." + os.sep + "Screenshots" + os.sep +
                                        "test_login_createCard_exception.png")
            self.driver.close()
            assert False

    def verify_modal_header(self, pstr_header):
        try:
            pstr_card_type = self.card_locators.pstr_addcard_model.format(
                pstr_header)
            bln_card_type = self.ui_helper.is_element_displayed(pstr_card_type)
            if bln_card_type:
                self.logger.info("****Card Modal header verified****  " +
                                 pstr_header)
                return True
            else:
                self.logger.info(
                    "****Card Modal header not verified****Please see screenshot"
                )
                self.driver.save_screenshot("." + os.sep + "Screenshots" +
                                            os.sep +
                                            "test_login_modal_header.png")
                self.driver.close()
                return False
        except Exception as exception_msg:
            self.logger.info(exception_msg)
            self.driver.save_screenshot("." + os.sep + "Screenshots" + os.sep +
                                        "test_login_modal_header_fail.png")
            self.driver.close()
            return False

    def wait_board_page_to_load(self):
        try:
            bln_card_page = self.ui_helper.is_element_displayed(
                self.card_locators.pstr_didnt_go_well)
            if bln_card_page:
                self.logger.info("****Card creation page loaded****")
                assert True
            else:
                self.logger.info(
                    "****Delay in page loading****Please see screenshot")
                self.driver.save_screenshot("." + os.sep + "Screenshots" +
                                            os.sep +
                                            "test_login_create_board_fail.png")
                self.driver.close()
                assert False
        except Exception as exception_msg:
            self.logger.info(exception_msg)
            self.driver.save_screenshot("." + os.sep + "Screenshots" + os.sep +
                                        "test_login_create_board_fail.png")
            self.driver.close()
            assert False

    def create_card(self, pstr_title, pstr_description):
        try:
            bln_title_name = self.ui_helper.is_element_displayed(
                self.card_locators.pstr_title)
            if bln_title_name:
                self.ui_helper.type(self.card_locators.pstr_title, pstr_title)
                self.logger.info("****Entered title name****   " +
                                 str(pstr_title))
            else:
                self.logger.info("****Unable to enter title name****")
                self.driver.save_screenshot("." + os.sep + "Screenshots" +
                                            os.sep +
                                            "test_login_createCard_title.png")
                self.driver.close()
                return False

            bln_description = self.ui_helper.is_element_displayed(
                self.card_locators.pstr_description)
            if bln_description:
                self.ui_helper.type(self.card_locators.pstr_description,
                                    pstr_description)
                self.logger.info("****Entered Description****   " +
                                 str(pstr_description))
            else:
                self.logger.info("****Unable to enter description****")
                self.driver.save_screenshot("." + os.sep + "Screenshots" +
                                            os.sep +
                                            "test_login_createCard_title.png")
                self.driver.close()
                return False

            bln_submit_create_card = self.ui_helper.is_element_displayed(
                self.card_locators.pstr_addcard_button)
            if bln_submit_create_card:
                self.ui_helper.click(self.card_locators.pstr_addcard_button)
                self.logger.info("****Clicked Add a card button***")
            else:
                self.logger.info("****Unable to click Add a card button****")
                self.driver.save_screenshot(
                    "." + os.sep + "Screenshots" + os.sep +
                    "test_login_createBoard_button.png")
                self.driver.close()
                return False
        except Exception as exception_msg:
            self.logger.info(exception_msg)
            self.driver.save_screenshot("." + os.sep + "Screenshots" + os.sep +
                                        "test_login_create_card_fail.png")
            self.driver.close()
            assert False

    def verify_card(self, pstr_card_type, pstr_title, pstr_desciption):
        try:
            pstr_load = self.card_locators.pstr_load_title.format(
                pstr_card_type)
            bln_load_card = self.ui_helper.is_element_displayed(pstr_load)
            if bln_load_card:
                pstr_expected_title = self.card_locators.pstr_verify_title.format(
                    pstr_card_type)
                str_pstr_title = self.driver.find_element_by_xpath(
                    pstr_expected_title).text
                pstr_expected_descr = self.card_locators.pstr_verify_description.format(
                    pstr_card_type)
                str_pstr_desc = self.driver.find_element_by_xpath(
                    pstr_expected_descr).text

                if str_pstr_title == pstr_title and str_pstr_desc == pstr_desciption:
                    self.logger.info("****Card Details verified****")
                    return True
                else:
                    self.logger.info("****Unable to verify card details****")
                    self.driver.save_screenshot(
                        "." + os.sep + "Screenshots" + os.sep +
                        "test_login_createcard_details_verify_fail.png")
                    self.driver.close()
                    return False
            else:
                self.logger.info("****Error in creating card****")
                self.driver.save_screenshot(
                    "." + os.sep + "Screenshots" + os.sep +
                    "test_login_createcard_details_verify_fail.png")
                self.driver.close()
                return False
        except Exception as exception_msg:
            self.logger.info(exception_msg)
            self.driver.save_screenshot(
                "." + os.sep + "Screenshots" + os.sep +
                "test_login_createcard_details_verify_fail_exception.png")
            self.driver.close()
            return False

    def click_activity(self, pstr_card_type, pstr_activity):
        try:
            pstr_activity_val = ''
            if pstr_activity == "like":
                pstr_activity_val = "0"
            else:
                pstr_activity_val = pstr_activity
            pstr_activity_actual = self.card_locators.pstr_activity.format(
                pstr_card_type, pstr_activity_val)
            bln_pstr_activity = self.ui_helper.is_element_displayed(
                pstr_activity_actual)
            if bln_pstr_activity:
                self.ui_helper.click(pstr_activity_actual)
                self.logger.info(pstr_activity + "****Activity clicked****")
                assert True
            else:
                self.logger.info("****Error in clicking activity****")
                self.driver.save_screenshot(
                    "." + os.sep + "Screenshots" + os.sep +
                    "test_login_createcard_click_activity_verify_fail.png")
                self.driver.close()
                assert False
        except Exception as exception_msg:
            self.logger.info(exception_msg)
            self.driver.save_screenshot(
                "." + os.sep + "Screenshots" + os.sep +
                "test_login_createcard_details_verify_fail_exception.png")
            self.driver.close()
            assert False

    def verify_activity(self, pstr_card, pstr_activity, **kwargs):
        try:
            if pstr_activity == "like" and "pstr_like_count" in kwargs:
                pstr_activity_val = kwargs.get("pstr_like_count")
                pstr_activity_actual = self.card_locators.pstr_activity.format(
                    pstr_card, pstr_activity_val)
                bln_pstr_activity = self.ui_helper.is_element_displayed(
                    pstr_activity_actual)
                if bln_pstr_activity:
                    self.logger.info(pstr_activity + "**** is verified****")
                    return True
                else:
                    pstr_list = 3
                    pstr_actual_like = self.card_locators.pstr_verify_activity.format(
                        pstr_card, pstr_list)
                    str_actual_like = self.driver.find_element_by_xpath(
                        pstr_actual_like).text
                    self.logger.info("****Like not verified****" +
                                     "Actual Like is " + str_actual_like)
                    self.driver.save_screenshot(
                        "." + os.sep + "Screenshots" + os.sep +
                        "test_login_createcard_like_activity_verify_fail.png")
                    self.driver.close()
                    return False
        except Exception as exception_msg:
            self.logger.info(exception_msg)
            self.driver.save_screenshot(
                "." + os.sep + "Screenshots" + os.sep +
                "test_login_createcard_like_activity_verify_fail.png")
            self.driver.close()
            return False

    def verify_delete_modal(self, pstr_delete_header, pstr_delete_question):
        try:
            bln_delete_pop_up = self.ui_helper.is_element_displayed(
                self.card_locators.pstr_delete_pop_up)
            if bln_delete_pop_up:
                str_delete_header = self.driver.find_element_by_xpath(
                    self.card_locators.pstr_verify_delete_pop_up).text
                str_delete_question = self.driver.find_element_by_xpath(
                    self.card_locators.pstr_verify_delete_question).text

                if str_delete_header == pstr_delete_header and str_delete_question == pstr_delete_question:
                    self.logger.info("****Delete modal pop up is verified****")
                    return True
                else:
                    self.logger.info(
                        "****Delete modal pop up is not verified****")
                    self.driver.save_screenshot("." + os.sep + "Screenshots" +
                                                os.sep +
                                                "test_verify_delete.png")
                    self.driver.close()
                    return False
            else:
                self.logger.info("****Delete modal pop up not showning up****")
                self.driver.save_screenshot("." + os.sep + "Screenshots" +
                                            os.sep + "test_verify_delete.png")
                self.driver.close()
                return False
        except Exception as exception_msg:
            self.logger.info(exception_msg)
            self.driver.save_screenshot("." + os.sep + "Screenshots" + os.sep +
                                        "test_verify_delete.png")
            self.driver.close()
            return False

    def delete_card(self):
        try:
            bln_confirm_delete = self.ui_helper.is_element_displayed(
                self.card_locators.pstr_confirm_delete)
            if bln_confirm_delete:
                self.ui_helper.click(self.card_locators.pstr_confirm_delete)
                self.logger.info("****Card delete button is clicked****")
                assert True
            else:
                self.logger.info("****Delete modal pop up not showning up****")
                self.driver.save_screenshot("." + os.sep + "Screenshots" +
                                            os.sep + "test_verify_delete.png")
                self.driver.close()
                assert False
        except Exception as exception_msg:
            self.logger.info(exception_msg)
            self.driver.save_screenshot("." + os.sep + "Screenshots" + os.sep +
                                        "test_verify_delete.png")
            self.driver.close()
            assert False

    def verify_delete_card(self, pstr_card_type):
        try:
            pstr_load = self.card_locators.pstr_load_title.format(
                pstr_card_type)
            bln_load_card = self.ui_helper.wait_for_invisibility_web_element(
                pstr_load)
            if bln_load_card:
                self.logger.info("****Card is deleted****")
                return True
            else:
                self.logger.info("****Card is still showing up****")
                self.driver.save_screenshot("." + os.sep + "Screenshots" +
                                            os.sep +
                                            "test_verify_delete_card.png")
                self.driver.close()
                return False
        except Exception as exception_msg:
            self.logger.info(exception_msg)
            self.driver.save_screenshot("." + os.sep + "Screenshots" + os.sep +
                                        "test_verify_delete_card.png")
            self.driver.close()
            return False
Ejemplo n.º 8
0
class JobPage:
    # Job Page
    logger = LogGen.loggen()
    explicit_wait = ReadConfig.getexplicitwait()
    job_locator = Joblocators()
    baseURL = ReadConfig.getApplicationURL()

    def __init__(self, driver):
        self.driver = driver
        self.ui_helper = UIHelper(self.driver)

    def verify_job_page(self, str_pageheader):
        """  Description:
                                |  This method will allow user to verify base page
                                :param str_pageheader: Page header
                                :type str_pageheader: String

                                :return: None

                                                        """
        pstr_page_header = self.job_locator.pstr_verify_home_page.format(
            str_pageheader)
        bln_page_header = self.ui_helper.is_element_displayed(pstr_page_header)
        if bln_page_header:
            self.logger.info("****User is on the Job page****")
            return True
        else:
            self.logger.info("****User is not on the Job page****")
            self.driver.save_screenshot("." + os.sep + "Screenshots" + os.sep +
                                        "test_login.png")
            self.driver.close()
            return False

    def verify_list_elements(self, pstr_naivigation_list, pstr_list_type):
        """  Description:
            |  This method will verify list_elements rendering on the page
        :param pstr_naivigation_list: list of elements to be verified
        :type pstr_naivigation_list: Dictionary
        :param pstr_list_type: type of list. E.g. Top Nav, sector list,etc.
        :type pstr_list_type: String

        :return: boolean

                                """
        bln_top = False
        pstr_actual_list = []
        if pstr_list_type == "sector_list":
            pstr_nav_list = pstr_naivigation_list.values()
            pstr_web_elem = self.driver.find_elements_by_xpath(
                self.job_locator.pstr_sector_list)
            bln_top = self.ui_helper.match_attributes_by_text(
                pstr_nav_list, pstr_web_elem)
        elif pstr_list_type == "top_nav":
            pstr_nav_list = pstr_naivigation_list.keys()
            pstr_web_elem = self.driver.find_elements_by_xpath(
                self.job_locator.pstr_nav_list)
            bln_top = self.ui_helper.match_attributes_by_text(
                pstr_nav_list, pstr_web_elem)
        elif pstr_list_type == "search_fields_list":
            pstr_search_placeholders = pstr_naivigation_list.values()
            pstr_web_ele_search = self.driver.find_elements_by_xpath(
                self.job_locator.pstr_search_list)
            if len(pstr_search_placeholders) == len(pstr_web_ele_search):
                for element in pstr_web_ele_search:
                    pstr_actual_list.append(
                        element.get_attribute("placeholder"))
                bln_top = ', '.join(map(
                    str, pstr_search_placeholders)) in ', '.join(
                        map(str, pstr_actual_list))
            else:
                self.logger.info(
                    "****Search box count mismatched. There may be few or more****"
                )
                self.driver.save_screenshot("." + os.sep + "Screenshots" +
                                            os.sep +
                                            "test_job_search_fields.png")
                self.driver.close()
                return False

        return bln_top

    def verify_top_links(self, pstr_nav_links, pstr_nav_headers):
        """  Description:
                    |  This method will verify links redirection along with pae headers
                :param pstr_nav_links: list of links to be verified on the page
                :type pstr_nav_links: Dictionary
                :param pstr_nav_headers: list of headers to be verified
                :type pstr_nav_headers: Dictionary

                :return: boolean

                                        """
        bln_verify_link = False
        bln_page_header = False
        for prop, value in pstr_nav_links.items():
            pstr_val = pstr_nav_headers[prop]
            pstr_link = self.job_locator.pstr_nav_links.format(prop)
            bln_pstr_link = self.ui_helper.is_element_displayed(pstr_link)
            if bln_pstr_link:
                self.ui_helper.click(pstr_link)
                pstr_page_header = self.job_locator.pstr_nav_head.format(
                    pstr_val)
                bln_page_header = self.ui_helper.is_element_displayed(
                    pstr_page_header)
                given_link = self.baseURL + value
                pstr_url = self.driver.current_url
                bln_verify_link = self.ui_helper.verify_url(
                    given_link, pstr_url)
            else:
                self.logger.info("**** Link not found. ****")
                self.driver.save_screenshot("." + os.sep + "Screenshots" +
                                            os.sep + "test_job_nav_link.png")
                self.driver.close()
                return False
        if bln_verify_link and bln_page_header:
            self.logger.info("**** Page headers verified ****")
            return True
        else:
            return False

    def click_sector(self, pstr_sector_type):
        """  Description:
                        |  This method will click on the sector type
                        :param pstr_sector_type: Name of type of sector
                        :type pstr_sector_type: String

                        :return: None

                                                """
        pstr_web_elem = self.driver.find_elements_by_xpath(
            self.job_locator.pstr_sector_list)
        for element in pstr_web_elem:
            if element.text == pstr_sector_type:
                element.click()
                self.logger.info(pstr_sector_type + "**** Clicked****")
                break

            else:
                self.logger.info(pstr_sector_type + "**** Not found****")
Ejemplo n.º 9
0
class CreateCard(cardlocators,LogGen):
    # Create card Page
    explicit_wait = ReadConfig.getexplicitwait()
    card_modal_header = ReadConfig.getvaluesfrom_json('header', 'sprint_board_modal')

    def __init__(self,driver):
        self.driver=driver
        self.ui_helper = UIHelper(self.driver)


    def clickCard(self, pstr_type):
        """
                        Description:
                            |  This method allows user to click on card

                        :param pstr_type: Type of card e.g. Went well, Didn't go well
                        :type pstr_type: String
                        :return: boolean: if the board is created successfully
                """
        pstr_card_type = self.pstr_type_card.format(pstr_type)
        bln_card_type = self.ui_helper.is_element_displayed(pstr_card_type)
        pstr_modal_header = self.pstr_addcard_model.format(self.card_modal_header)
        bln_load_card = self.ui_helper.wait_for_invisibility_web_element(pstr_modal_header)
        if bln_card_type and bln_load_card:
            self.ui_helper.click(pstr_card_type)
            self.loggen().info("****Card type is clicked****  " + pstr_type)
            assert True
        else:
            self.loggen().info("****card type not found or not clickable****")
            self.driver.save_screenshot("." + os.sep + "Screenshots" + os.sep + "test_login_createCard.png")
            self.driver.close()
            assert False



    def verify_modal_header(self, pstr_header):
        """
                                Description:
                                    |  This method allows user to verify modal header: E.g :Add a Card

                                :param pstr_header: Header Name
                                :type pstr_header: String
                                :return: boolean
                        """
        pstr_card_type = self.pstr_addcard_model.format(pstr_header)
        bln_card_type = self.ui_helper.is_element_displayed(pstr_card_type)
        if bln_card_type:
            self.loggen().info("****Card Modal header verified****  " + pstr_header)
            return True
        else:
            self.loggen().info("****Card Modal header not verified****Please see screenshot")
            self.driver.save_screenshot("." + os.sep + "Screenshots" + os.sep + "test_login_modal_header.png")
            self.driver.close()
            return False


    def wait_board_page_to_load(self):
        bln_card_page= self.ui_helper.is_element_displayed(self.pstr_didnt_go_well)
        if bln_card_page:
            self.loggen().info("****Card creation page loaded****")
            assert True
        else:
            self.loggen().info("****Delay in page loading****Please see screenshot")
            self.driver.save_screenshot("." + os.sep + "Screenshots" + os.sep + "test_login_create_board_fail.png")
            self.driver.close()
            assert False

    def create_card(self,pstr_title, pstr_description):
        """
                        Description:
                            |  This method allows user to create_card

                        :param pstr_title: Title of the card
                        :type pstr_title: String
                        :param pstr_description: Description of the card
                        :type pstr_description: String
                        :return: boolean
                """
        bln_title_name = self.ui_helper.is_element_displayed(self.pstr_title)
        if bln_title_name:
            self.ui_helper.type(self.pstr_title,pstr_title)
            self.loggen().info("****Entered title name****   " + str(pstr_title))
        else:
            self.loggen().info("****Unable to enter title name****")
            self.driver.save_screenshot("." + os.sep + "Screenshots" + os.sep + "test_login_createCard_title.png")
            self.driver.close()
            return False

        bln_description = self.ui_helper.is_element_displayed(self.pstr_description)
        if bln_description:
            self.ui_helper.type(self.pstr_description, pstr_description)
            self.loggen().info("****Entered Description****   " + str(pstr_description))
        else:
            self.loggen().info("****Unable to enter description****")
            self.driver.save_screenshot("." + os.sep + "Screenshots" + os.sep + "test_login_createCard_title.png")
            self.driver.close()
            return False

        bln_submit_create_card = self.ui_helper.is_element_displayed(self.pstr_addcard_button)
        if bln_submit_create_card:
            self.ui_helper.click(self.pstr_addcard_button)
            self.loggen().info("****Clicked Add a card button***")
        else:
            self.loggen().info("****Unable to click Add a card button****")
            self.driver.save_screenshot("." + os.sep + "Screenshots" + os.sep + "test_login_createBoard_button.png")
            self.driver.close()
            return False


    def verify_card(self,pstr_card_type,pstr_title,pstr_desciption):
        """
                                Description:
                                    |  This method allows user to verify_card

                                :param pstr_title: Title of the card
                                :type pstr_title: String
                                :param pstr_description: Description of the card
                                :type pstr_description: String
                                :return: boolean
                        """
        pstr_load = self.pstr_load_title.format(pstr_card_type)
        bln_load_card = self.ui_helper.is_element_displayed(pstr_load)
        if bln_load_card:
            pstr_expected_title= self.pstr_verify_title.format(pstr_card_type)
            str_pstr_title = self.driver.find_element_by_xpath(pstr_expected_title).text
            pstr_expected_descr = self.pstr_verify_description.format(pstr_card_type)
            str_pstr_desc = self.driver.find_element_by_xpath(pstr_expected_descr).text

            if str_pstr_title==pstr_title and str_pstr_desc==pstr_desciption:
                self.loggen().info("****Card Details verified****")
                return True
            else:
                self.loggen().info("****Unable to verify card details****")
                self.driver.save_screenshot("." + os.sep + "Screenshots" + os.sep + "test_login_createcard_details_verify_fail.png")
                self.driver.close()
                return False
        else:
            self.loggen().info("****Error in creating card****")
            self.driver.save_screenshot("." + os.sep + "Screenshots" + os.sep + "test_login_createcard_details_verify_fail.png")
            self.driver.close()
            return False

    def click_activity(self,pstr_card_type, pstr_activity):
        """
                                Description:
                                    |  This method allows user to click on activity

                                :param pstr_card_type: Card Type.E.g Went well
                                :type pstr_card_type: String
                                :param pstr_activity: Activity. E.g Like, Delete
                                :type pstr_activity: String
                                :return: boolean
                        """
        self.wait_board_page_to_load()
        pstr_modal_header = self.pstr_addcard_model.format(self.card_modal_header)
        bln_load_card = self.ui_helper.wait_for_invisibility_web_element(pstr_modal_header)
        if bln_load_card:
            if pstr_activity == "like":
                pstr_activity_val = "0"
            else:
                pstr_activity_val = pstr_activity
            pstr_activity_actual = self.pstr_activity.format(pstr_card_type,pstr_activity_val)
            bln_pstr_activity = self.ui_helper.is_element_displayed(pstr_activity_actual)
            if bln_pstr_activity:
                self.ui_helper.click(pstr_activity_actual)
                self.loggen().info(pstr_activity +"****Activity clicked****")
                assert True
            else:
                self.loggen().info("****Error in clicking activity****")
                self.driver.save_screenshot(
                    "." + os.sep + "Screenshots" + os.sep + "test_login_createcard_click_activity_verify_fail.png")
                self.driver.close()
                assert False


    def verify_activity(self,pstr_card,pstr_activity,**kwargs):
        """
                                        Description:
                                            |  This method allows user to verify activity aftercard is created

                                        :param pstr_card_type: Card Type.E.g Went well
                                        :type pstr_card_type: String
                                        :param pstr_activity: Activity. E.g Like
                                        :type pstr_activity: String
                                        :**kwargs : Count of like
                                        :return: boolean
                                """
        if pstr_activity == "like" and "pstr_like_count" in kwargs:
            pstr_activity_val = kwargs.get("pstr_like_count")
            pstr_activity_actual = self.pstr_activity.format(pstr_card, pstr_activity_val)
            bln_pstr_activity = self.ui_helper.is_element_displayed(pstr_activity_actual)
            if bln_pstr_activity:
                self.loggen().info(pstr_activity + "**** is verified****")
                return True
            else:
                pstr_list =3
                pstr_actual_like = self.pstr_verify_activity.format(pstr_card,pstr_list)
                str_actual_like = self.driver.find_element_by_xpath(pstr_actual_like).text
                self.loggen().info("****Like not verified****" + "Actual Like is " + str_actual_like)
                self.driver.save_screenshot(
                    "." + os.sep + "Screenshots" + os.sep + "test_login_createcard_like_activity_verify_fail.png")
                self.driver.close()
                return False

    def verify_delete_modal(self, pstr_delete_header, pstr_delete_question):
        """
                                                Description:
                                                    |  This method allows user to verify delete modal

                                                :param pstr_delete_header:
                                                :type pstr_delete_header: String
                                                :param pstr_delete_question:
                                                :type pstr_delete_question: String
                                                :return: boolean
                                        """
        bln_delete_pop_up = self.ui_helper.is_element_displayed(self.pstr_delete_pop_up)
        if bln_delete_pop_up:
            str_delete_header = self.driver.find_element_by_xpath(self.pstr_verify_delete_pop_up).text
            str_delete_question = self.driver.find_element_by_xpath(self.pstr_verify_delete_question).text

            if str_delete_header==pstr_delete_header and str_delete_question==pstr_delete_question:
                self.loggen().info("****Delete modal pop up is verified****")
                return True
            else:
                self.loggen().info("****Delete modal pop up is not verified****")
                self.driver.save_screenshot("." + os.sep + "Screenshots" + os.sep + "test_verify_delete.png")
                self.driver.close()
                return False
        else:
            self.loggen().info("****Delete modal pop up not showning up****")
            self.driver.save_screenshot("." + os.sep + "Screenshots" + os.sep + "test_verify_delete.png")
            self.driver.close()
            return False


    def delete_card(self):
        bln_confirm_delete =self.ui_helper.is_element_displayed(self.pstr_confirm_delete)
        if bln_confirm_delete:
            self.ui_helper.click(self.pstr_confirm_delete)
            self.loggen().info("****Card delete button is clicked****")
            assert True
        else:
            self.loggen().info("****Delete modal pop up not showning up****")
            self.driver.save_screenshot("." + os.sep + "Screenshots" + os.sep + "test_verify_delete.png")
            self.driver.close()
            assert False

    def verify_delete_card(self,pstr_card_type):
        """
                                        Description:
                                            |  This method allows user to delete card

                                        :param pstr_card_type: Card Type.E.g Went well
                                        :type pstr_card_type: String

                                        :return: boolean
                                """
        pstr_load = self.pstr_load_title.format(pstr_card_type)
        bln_load_card = self.ui_helper.wait_for_invisibility_web_element(pstr_load)
        if bln_load_card:
            self.loggen().info("****Card is deleted****")
            return True
        else:
            self.loggen().info("****Card is still showing up****")
            self.driver.save_screenshot("." + os.sep + "Screenshots" + os.sep + "test_verify_delete_card.png")
            self.driver.close()
            return False