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
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
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
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
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
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****")
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