def test_login_create_board(self, setup): try: self.logger.info("****Started Login Test****") self.driver = setup self.driver.maximize_window() self.driver.get(self.baseURL) self.lp = LoginPage(self.driver) self.bp = BoardPage(self.driver) assert self.lp.login(self.username, self.password) self.bp.go_to_create_board() self.ui_helper = UIHelper(self.driver) pstr_url = self.driver.current_url assert self.ui_helper.verify_url(self.create_boardURL, pstr_url) pstr_title = self.driver.title assert self.create_board_title, pstr_title assert self.bp.verify_page_header(self.str_page_header) bln_final_result = self.bp.create_board(self.session_name, self.owner, self.success_message) if bln_final_result: self.logger.info("*** Test 001 passed****") self.driver.close() assert True else: self.logger.error("****Test 001 failed****") 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_exception.png") self.driver.close() assert False
class Test_Login: baseURL = ReadConfig.getApplicationURL() username = ReadConfig.getUseremail() password = ReadConfig.getPassword() logger = LogGen.loggen() create_boardURL = ReadConfig.getvaluesfrom_json('page_urls', 'create_board') create_board_title = ReadConfig.getvaluesfrom_json('title', 'create_board') str_page_header = ReadConfig.getvaluesfrom_json('header', 'create_board') session_name = ReadConfig.getvaluesfrom_json('create-board_data', 'session_name') owner = ReadConfig.getvaluesfrom_json('create-board_data', 'owner') success_message = ReadConfig.getvaluesfrom_json('create-board_data', 'success_message') @pytest.mark.smoke @pytest.mark.ui def test_login_create_board(self, setup): try: self.logger.info("****Started Login Test****") self.driver = setup self.driver.maximize_window() self.driver.get(self.baseURL) self.lp = LoginPage(self.driver) self.bp = BoardPage(self.driver) assert self.lp.login(self.username, self.password) self.bp.go_to_create_board() self.ui_helper = UIHelper(self.driver) pstr_url = self.driver.current_url assert self.ui_helper.verify_url(self.create_boardURL, pstr_url) pstr_title = self.driver.title assert self.create_board_title, pstr_title assert self.bp.verify_page_header(self.str_page_header) bln_final_result = self.bp.create_board(self.session_name, self.owner, self.success_message) if bln_final_result: self.logger.info("*** Test 001 passed****") self.driver.close() assert True else: self.logger.error("****Test 001 failed****") 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_exception.png") self.driver.close() assert False
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
def __init__(self, driver): self.driver = driver self.ui_helper = UIHelper(self.driver)
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(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
def test_create_card_not_went_well(self, setup): try: self.logger.info("****Started Login Test****") self.driver = setup self.driver.maximize_window() self.driver.get(self.baseURL) self.lp = LoginPage(self.driver) self.bp = BoardPage(self.driver) assert self.lp.login(self.username, self.password) self.bp.go_to_create_board() bln_final_result = self.bp.create_board(self.session_name, self.owner, self.success_message) if bln_final_result: self.ui_helper = UIHelper(self.driver) self.cp = CreateCard(self.driver) self.cp.wait_board_page_to_load() pstr_url = self.driver.current_url assert self.ui_helper.verify_url(self.board_url, pstr_url) self.cp.clickCard(self.card_type_went_well) assert self.cp.verify_modal_header(self.card_modal_header) self.cp.create_card(self.well_add_card_title, self.well_add_card_description) assert self.cp.verify_card(self.card_type_went_well, self.well_add_card_title, self.well_add_card_description) self.cp.clickCard(self.card_type_not_went_well) assert self.cp.verify_modal_header(self.card_modal_header) self.cp.create_card(self.not_well_add_card_title, self.not_well_add_card_description) assert self.cp.verify_card(self.card_type_not_went_well, self.not_well_add_card_title, self.not_well_expected_desc) self.cp.click_activity(self.card_type_went_well, self.well_card_activity) bln_like = self.cp.verify_activity( self.card_type_went_well, self.well_card_activity, pstr_like_count=self.well_like_count) self.cp.click_activity(self.card_type_not_went_well, self.not_well_card_activity) assert self.cp.verify_delete_modal( self.not_well_delete_header, self.not_well_delete_question) self.cp.delete_card() bln_delete_card = self.cp.verify_delete_card( self.card_type_not_went_well) if bln_like and bln_delete_card: self.logger.info("***Test 003 passed****") self.driver.close() assert True else: self.logger.error("****Test 003 failed ****") 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_createCard_not_well_exception.png") self.driver.close() assert False
class Test_Login: baseURL = ReadConfig.getApplicationURL() username = ReadConfig.getUseremail() password = ReadConfig.getPassword() logger = LogGen.loggen() session_name = ReadConfig.getvaluesfrom_json('create-board_data', 'session_name') owner = ReadConfig.getvaluesfrom_json('create-board_data', 'owner') success_message = ReadConfig.getvaluesfrom_json('create-board_data', 'success_message') board_url = ReadConfig.getvaluesfrom_json('page_urls', 'board_page') card_type_went_well = ReadConfig.getvaluesfrom_json('card_type', 'green') card_type_not_went_well = ReadConfig.getvaluesfrom_json('card_type', 'red') card_modal_header = ReadConfig.getvaluesfrom_json('header', 'sprint_board_modal') well_add_card_title = ReadConfig.getvaluesfrom_json( 'went_well_data', 'title') well_add_card_description = ReadConfig.getvaluesfrom_json( 'went_well_data', 'description') well_card_activity = ReadConfig.getvaluesfrom_json('card_activity', 'went_well') well_like_count = ReadConfig.getvaluesfrom_json('card_activity', 'like_count') not_well_add_card_title = ReadConfig.getvaluesfrom_json( 'not_went_well_data', 'title') not_well_add_card_description = ReadConfig.getvaluesfrom_json( 'not_went_well_data', 'description') not_well_expected_desc = ReadConfig.getvaluesfrom_json( 'not_went_well_data', 'description_displayed') not_well_card_activity = ReadConfig.getvaluesfrom_json( 'card_activity', 'not went well') not_well_delete_header = ReadConfig.getvaluesfrom_json( 'not_went_well_data', 'delete_header') not_well_delete_question = ReadConfig.getvaluesfrom_json( 'not_went_well_data', 'delete_question') @pytest.mark.smoke @pytest.mark.ui def test_create_card_not_went_well(self, setup): try: self.logger.info("****Started Login Test****") self.driver = setup self.driver.maximize_window() self.driver.get(self.baseURL) self.lp = LoginPage(self.driver) self.bp = BoardPage(self.driver) assert self.lp.login(self.username, self.password) self.bp.go_to_create_board() bln_final_result = self.bp.create_board(self.session_name, self.owner, self.success_message) if bln_final_result: self.ui_helper = UIHelper(self.driver) self.cp = CreateCard(self.driver) self.cp.wait_board_page_to_load() pstr_url = self.driver.current_url assert self.ui_helper.verify_url(self.board_url, pstr_url) self.cp.clickCard(self.card_type_went_well) assert self.cp.verify_modal_header(self.card_modal_header) self.cp.create_card(self.well_add_card_title, self.well_add_card_description) assert self.cp.verify_card(self.card_type_went_well, self.well_add_card_title, self.well_add_card_description) self.cp.clickCard(self.card_type_not_went_well) assert self.cp.verify_modal_header(self.card_modal_header) self.cp.create_card(self.not_well_add_card_title, self.not_well_add_card_description) assert self.cp.verify_card(self.card_type_not_went_well, self.not_well_add_card_title, self.not_well_expected_desc) self.cp.click_activity(self.card_type_went_well, self.well_card_activity) bln_like = self.cp.verify_activity( self.card_type_went_well, self.well_card_activity, pstr_like_count=self.well_like_count) self.cp.click_activity(self.card_type_not_went_well, self.not_well_card_activity) assert self.cp.verify_delete_modal( self.not_well_delete_header, self.not_well_delete_question) self.cp.delete_card() bln_delete_card = self.cp.verify_delete_card( self.card_type_not_went_well) if bln_like and bln_delete_card: self.logger.info("***Test 003 passed****") self.driver.close() assert True else: self.logger.error("****Test 003 failed ****") 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_createCard_not_well_exception.png") self.driver.close() assert False
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
class Test_UI_springboard: baseURL = ReadConfig.getApplicationURL() username = ReadConfig.getUseremail() password = ReadConfig.getPassword() logger = LogGen.loggen() login_url = ReadConfig.getvaluesfrom_json('page_urls', 'login_url') create_boardURL = ReadConfig.getvaluesfrom_json('page_urls', 'create_board') create_board_title = ReadConfig.getvaluesfrom_json('title', 'create_board') str_page_header = ReadConfig.getvaluesfrom_json('header', 'create_board') session_name = ReadConfig.getvaluesfrom_json('create-board_data', 'session_name') owner = ReadConfig.getvaluesfrom_json('create-board_data', 'owner') success_message = ReadConfig.getvaluesfrom_json('create-board_data', 'success_message') board_url = ReadConfig.getvaluesfrom_json('page_urls', 'board_page') card_type_went_well = ReadConfig.getvaluesfrom_json('card_type', 'green') card_type_not_went_well = ReadConfig.getvaluesfrom_json('card_type', 'red') card_modal_header = ReadConfig.getvaluesfrom_json('header', 'sprint_board_modal') well_add_card_title = ReadConfig.getvaluesfrom_json( 'went_well_data', 'title') well_add_card_description = ReadConfig.getvaluesfrom_json( 'went_well_data', 'description') well_card_activity = ReadConfig.getvaluesfrom_json('card_activity', 'went_well') well_like_count = ReadConfig.getvaluesfrom_json('card_activity', 'like_count') not_well_add_card_title = ReadConfig.getvaluesfrom_json( 'not_went_well_data', 'title') not_well_add_card_description = ReadConfig.getvaluesfrom_json( 'not_went_well_data', 'description') not_well_expected_desc = ReadConfig.getvaluesfrom_json( 'not_went_well_data', 'description_displayed') not_well_card_activity = ReadConfig.getvaluesfrom_json( 'card_activity', 'not went well') not_well_delete_header = ReadConfig.getvaluesfrom_json( 'not_went_well_data', 'delete_header') not_well_delete_question = ReadConfig.getvaluesfrom_json( 'not_went_well_data', 'delete_question') @pytest.fixture() def launch_app(self, setup): self.driver = setup self.lp = LoginPage(self.driver) self.driver.maximize_window() self.driver.get(self.baseURL + self.login_url) # login to application and verify homepage assert self.lp.login(self.username, self.password) @pytest.mark.smoke @pytest.mark.ui def test_springboard(self, launch_app): self.bp = BoardPage(self.driver) self.cp = CreateCard(self.driver) self.ui_helper = UIHelper(self.driver) self.login_create_board() self.card_manipulation() def login_create_board(self): self.logger.info("****Started create board Test****") # go to create board link self.bp.go_to_create_board() pstr_url = self.driver.current_url # verify current url of create board assert self.ui_helper.verify_url(self.baseURL + self.create_boardURL, pstr_url) pstr_title = self.driver.title # verify title of create board page assert self.create_board_title, pstr_title # verify header of create board page assert self.bp.verify_page_header(self.str_page_header) # verify board creation with success message created bln_final_result = self.bp.create_board(self.session_name, self.owner, self.success_message) if bln_final_result: self.logger.info("*** Board created successfully****") self.logger.info("****Create board Test End****") assert True else: self.logger.error("****Board creation unsuccessful****") self.logger.info("****Create board Test End****") assert False def card_manipulation(self): self.logger.info("****Started Card manipulation Test****") self.cp.wait_board_page_to_load() pstr_url = self.driver.current_url #verify board url assert self.ui_helper.verify_url(self.baseURL + self.board_url, pstr_url) #click went well card card self.cp.clickCard(self.card_type_went_well) #verify modal header assert self.cp.verify_modal_header(self.card_modal_header) #create went well card self.cp.create_card(self.well_add_card_title, self.well_add_card_description) #verify well card creation assert self.cp.verify_card(self.card_type_went_well, self.well_add_card_title, self.well_add_card_description) self.cp.wait_board_page_to_load() #click did'nt go well card self.cp.clickCard(self.card_type_not_went_well) #verify modal header assert self.cp.verify_modal_header(self.card_modal_header) #create didn't go well card self.cp.create_card(self.not_well_add_card_title, self.not_well_add_card_description) #verify didn't go well card assert self.cp.verify_card(self.card_type_not_went_well, self.not_well_add_card_title, self.not_well_expected_desc) #like the went well card self.cp.click_activity(self.card_type_went_well, self.well_card_activity) #verify like bln_like = self.cp.verify_activity( self.card_type_went_well, self.well_card_activity, pstr_like_count=self.well_like_count) #delete the didn't go well card self.cp.click_activity(self.card_type_not_went_well, self.not_well_card_activity) #verify card delete modal assert self.cp.verify_delete_modal(self.not_well_delete_header, self.not_well_delete_question) #confirm card delete self.cp.delete_card() #verify didn't go well card is deleted bln_delete_card = self.cp.verify_delete_card( self.card_type_not_went_well) if bln_like and bln_delete_card: self.logger.info("***Card manipulation Successful****") self.logger.info("*** Card manipulation test ended****") assert True else: self.logger.error("****Card manipulation unsuccessful****") self.logger.info("*** Card manipulation test ended****") assert False
def test_springboard(self, launch_app): self.bp = BoardPage(self.driver) self.cp = CreateCard(self.driver) self.ui_helper = UIHelper(self.driver) self.login_create_board() self.card_manipulation()
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