class MultiSelectValues: __e_search_xpath = Locators.TITLE['title'].format('Type here to search') __e_select_search_item_xpath = Locators.MULTI_SELECTIONS['moveAllItemsRight'] __e_done_button_xpath = Locators.BUTTONS['done'] def __init__(self, driver): self.driver = driver self.wait = WebElementWait(self.driver) def search(self, search_value): try: self.wait.web_element_wait_send_keys(By.XPATH, self.__e_search_xpath, search_value, 'Multi_value_search') return True except Exception as error: ui_logger.error(error) def search_clear(self): try: self.wait.clear(By.XPATH, self.__e_search_xpath, 'search_clear') return True except Exception as error: ui_logger.error(error) def move_all_items(self): try: self.wait.web_element_wait_click(By.XPATH, self.__e_select_search_item_xpath, 'Move_all_items') return True except Exception as error: ui_logger.error(error) def done(self): try: self.wait.web_element_wait_click(By.XPATH, self.__e_done_button_xpath, 'Done_button') return True except Exception as error: ui_logger.error(error)
class JobCreationPage: """ ----------------- WEB ELEMENT REFERENCE CLASS PRIVATE VARIABLES TO EASY ACCESS ------>>>> """ __e_create = Locators.BUTTONS['create'] __e_job_names = Locators.JOB['job_name'] __e_anchor_tag = Locators.TAG['anchor'] __e_file_path = Locators.ATTACHMENT['file'] __e_description = Locators.JOB['description'] __e_location = Locators.PLACEHOLDER['text_ph'].format('Location') __e_hm = Locators.PLACEHOLDER['text_ph'].format('Hiring Manager') __e_bu = Locators.PLACEHOLDER['text_ph'].format('Business Unit') __e_openings = Locators.JOB['openings'] __e_male = Locators.PLACEHOLDER['num_ph'].format('Male') __e_female = Locators.PLACEHOLDER['num_ph'].format('Female') __e_job_create = Locators.BUTTONS['button'].format('Create') def __init__(self, driver): self.driver = driver self.wait = WebElementWait(self.driver) self.notifier = Notifier(self.driver) def create_button(self): try: self.wait.web_element_wait_click(By.XPATH, self.__e_create, 'Job Create Button') print('***--------->>> Clicked on job created button') self.wait.loading() return True except Exception as error: ui_logger.error(error) def job_name(self, name): try: self.wait.web_element_wait_send_keys(By.XPATH, self.__e_job_names, name, 'Job_name_field') return True except Exception as error: ui_logger.error(error) def job_attachment(self, file_path): try: self.wait.web_element_wait_send_keys(By.XPATH, self.__e_file_path, file_path, 'Job_attachment') time.sleep(0.5) self.wait.uploading() return True except Exception as error: ui_logger.error(error) def job_attachment_notifier(self, message): try: self.notifier.glowing_messages(message) self.notifier.dismiss_message() return True except Exception as error: ui_logger.error(error) def job_description(self, description): self.wait.web_element_wait_send_keys(By.XPATH, self.__e_description, description, 'Job_description') self.wait.drop_down_selection() return True def job_location(self, location): self.wait.web_element_wait_send_keys(By.XPATH, self.__e_location, location, 'Job_location_field') self.wait.drop_down_selection() return True def job_hiring_manager(self, hm): self.wait.web_element_wait_send_keys(By.XPATH, self.__e_hm, hm, 'job_hm_field') self.wait.drop_down_selection() return True def job_business_unit(self, bu): self.wait.web_element_wait_send_keys(By.XPATH, self.__e_bu, bu, 'Job_bu_field') self.wait.drop_down_selection() return True def job_openings(self, openings): self.wait.clear(By.NAME, self.__e_openings, 'Job_openings_field') self.wait.web_element_wait_send_keys(By.NAME, self.__e_openings, openings, 'Job_openings_field') return True def job_male_diversity(self, male_diversity): self.wait.clear(By.XPATH, self.__e_male, 'Job_male_field') self.wait.web_element_wait_send_keys(By.XPATH, self.__e_male, male_diversity, 'Job_male_field') return True def job_female_diversity(self, female_diversity): self.wait.clear(By.XPATH, self.__e_female, 'Job_female_field') self.wait.web_element_wait_send_keys(By.XPATH, self.__e_female, female_diversity, 'Job_female_field') return True def job_create(self): self.wait.web_element_wait_click(By.XPATH, self.__e_job_create, 'Job_create_button') self.wait.loading() return True def job_create_notifier(self, message): try: self.notifier.glowing_messages(message) return True except Exception as error: ui_logger.error(error) def job_create_notifier_dismiss(self): try: self.notifier.dismiss_message() self.wait.loading() time.sleep(0.2) self.wait.loading() return True except Exception as error: ui_logger.error(error)
class EventUploadCandidate: __e_upload_xpath = Locators.ATTACHMENT['file'] __e_next_button_xpath = Locators.BUTTONS['button'].format('Next') __e_declare_xpath = Locators.CHECKBOX['type'] __e_signature_xpath = Locators.CANDIDATE['upload_signature'] __e_agree_xpath = Locators.BUTTONS['button'].format('I Agree') __e_edit_info_xpath = Locators.TITLE['title'].format('Edit') __e_name_xpath = Locators.CANDIDATE['name_field'] __e_email_xpath = Locators.CANDIDATE['email_field'] __e_usn_xpath = Locators.CANDIDATE['usn_field'] __e_save_button_xpath = Locators.CANDIDATE['save_info'] __e_save_candidate_xpath = Locators.CANDIDATE['save'] __e_upload_count_css = Locators.CANDIDATE['Upload_count'] __e_close_button_xpath = Locators.BUTTONS['button'].format('Close') __e_close_main_xpath = Locators.BUTTONS['close'] __e_confirm_close_main_xpath = Locators.BUTTONS['all_buttons'].format('OK') def __init__(self, driver): self.driver = driver self.wait = WebElementWait(self.driver) self.notifier = Notifier(self.driver) self.scroll = PageScroll(self.driver) def upload_file(self, upload_file): try: self.wait.web_element_wait_send_keys(By.XPATH, self.__e_upload_xpath, upload_file, 'upload_file') print('Candidate excel sheet - Uploading') self.wait.uploading() return True except Exception as error: ui_logger.error(error) def next_button(self): try: self.wait.web_element_wait_click(By.XPATH, self.__e_next_button_xpath, 'upload_file') print('Candidate scree next button - Clicked') self.wait.loading() return True except Exception as error: ui_logger.error(error) def declare_check(self): try: self.wait.web_element_wait_click(By.XPATH, self.__e_declare_xpath, 'declare_check') print('Declare Check - Clicked') return True except Exception as error: ui_logger.error(error) def signature_entry(self): try: self.wait.web_element_wait_send_keys(By.XPATH, self.__e_signature_xpath, 'VinodKumar', 'signature_entry') print('Signature Entry - Signed') return True except Exception as error: ui_logger.error(error) def agreed_button(self): try: self.wait.web_element_wait_click(By.XPATH, self.__e_agree_xpath, 'agreed_button') print('Agreed Button - Clicked') return True except Exception as error: ui_logger.error(error) def edit_excel_information(self): try: self.wait.web_element_wait_click(By.XPATH, self.__e_edit_info_xpath, 'edit_excel_information') print('Edit Information button - Clicked') return True except Exception as error: ui_logger.error(error) def name_edit(self, candidate_name): try: self.wait.clear(By.XPATH, self.__e_name_xpath, 'Name_field_clear') self.wait.web_element_wait_send_keys(By.XPATH, self.__e_name_xpath, candidate_name, 'name_edit') print('Name information - Changed') return True except Exception as error: ui_logger.error(error) def email_edit(self, candidate_email): try: self.wait.clear(By.XPATH, self.__e_email_xpath, 'Name_field_clear') self.wait.web_element_wait_send_keys(By.XPATH, self.__e_email_xpath, candidate_email, 'email_edit') print('Email information - Changed') return True except Exception as error: ui_logger.error(error) def usn_edit(self, usn_email): try: self.wait.clear(By.XPATH, self.__e_usn_xpath, 'Name_field_clear') self.wait.web_element_wait_send_keys(By.XPATH, self.__e_usn_xpath, usn_email, 'email_edit') print('Usn information - Changed') return True except Exception as error: ui_logger.error(error) def save_info(self): try: self.scroll.down(0, -50) self.wait.web_element_wait_click(By.XPATH, self.__e_save_button_xpath, 'save_info') print('Save information - Saved') return True except Exception as error: ui_logger.error(error) def save_candidate(self): try: time.sleep(1) self.wait.web_element_wait_click(By.XPATH, self.__e_save_candidate_xpath, 'save_candidate') print('Save Candidate - Saved') return True except Exception as error: ui_logger.error(error) def success_upload(self, message): try: time.sleep(3) self.wait.web_element_wait_text(By.CSS_SELECTOR, self.__e_upload_count_css, 'success_upload') if self.wait.text_value.strip() == message: print(f'Success {self.wait.text_value.strip()} - Count') return True except Exception as error: ui_logger.error(error) def close_candidate_screen(self): try: self.wait.web_element_wait_click(By.XPATH, self.__e_close_button_xpath, 'close_candidate_screen') print('Close Candidate Screen - Closed') return True except Exception as error: ui_logger.error(error) def close_main_screen(self): try: self.wait.web_element_wait_click(By.XPATH, self.__e_close_main_xpath, 'close_main_screen') print('Close Main Screen - Closed') return True except Exception as error: ui_logger.error(error) def confirm_close_main_screen(self): try: self.wait.web_element_wait_click(By.XPATH, self.__e_confirm_close_main_xpath, 'confirm_close_main_screen') print('Confirm Close Main Screen - Closed') self.wait.loading() return True except Exception as error: ui_logger.error(error)
class EventMangeInterviewersPage: __e_add_criteria_xpath = Locators.BUTTONS['add_criteria'] __e_panel_entry_xpath = Locators.NOMINATIONS['panel_1'] __e_panel2_entry_xpath = Locators.NOMINATIONS['panel_2'] __e_skill1_search_xpath = Locators.BUTTONS['nomination_int_search'] __e_skill2_search_xpath = Locators.NOMINATIONS['search'] __e_skill1_required_int_xpath = Locators.NOMINATIONS['skill1_int'] __e_skill2_required_int_xpath = Locators.NOMINATIONS['skill2_int'] __e_skill1_required_nom_xpath = Locators.NOMINATIONS['skill1_nom'] __e_skill2_required_nom_xpath = Locators.NOMINATIONS['skill2_nom'] __e_send_mail_xpath = Locators.BUTTONS['nomination_mail'] __e_confirm_button_xpath = Locators.BUTTONS['all_buttons'].format('OK') def __init__(self, driver): self.driver = driver self.wait = WebElementWait(self.driver) self.scroll = PageScroll(self.driver) self.notifier = Notifier(self.driver) def add_criteria(self): try: time.sleep(1.5) self.wait.web_element_wait_click(By.XPATH, self.__e_add_criteria_xpath, 'add_criteria') print('Add new criteria - Clicked') return True except Exception as error: ui_logger.error(error) def panel_skill1_select(self, panel): try: self.wait.web_element_wait_send_keys(By.XPATH, self.__e_panel_entry_xpath, panel, 'panel_skill1_select') self.wait.drop_down_selection() print('Skill-1 to panel - Selected') return True except Exception as error: ui_logger.error(error) def panel_skill2_select(self, panel): try: self.wait.web_element_wait_send_keys(By.XPATH, self.__e_panel2_entry_xpath, panel, 'panel_skill2_select') self.wait.drop_down_selection() print('Skill-2 to panel - Selected') return True except Exception as error: ui_logger.error(error) def search_skill1_interviewers(self): try: self.wait.web_element_wait_click(By.XPATH, self.__e_skill1_search_xpath, 'search_skill1_interviewers') print('Skill-1 interviewers - Searched') return True except Exception as error: ui_logger.error(error) def search_skill2_interviewers(self): try: self.wait.web_element_wait_click(By.XPATH, self.__e_skill2_search_xpath, 'search_skill2_interviewers') print('Skill-2 interviewers - Searched') return True except Exception as error: ui_logger.error(error) def skill1_required_interviewers(self, count): try: self.wait.clear(By.XPATH, self.__e_skill1_required_int_xpath, 'skill1_required_int') self.wait.web_element_wait_send_keys( By.XPATH, self.__e_skill1_required_int_xpath, count, 'search_skill2_interviewers') print('Skill-1 interviewers count - Entered') return True except Exception as error: ui_logger.error(error) def skill2_required_interviewers(self, count): try: self.wait.clear(By.XPATH, self.__e_skill2_required_int_xpath, 'skill2_required_int') self.wait.web_element_wait_send_keys( By.XPATH, self.__e_skill2_required_int_xpath, count, 'search_skill2_interviewers') print('Skill-2 interviewers count - Entered') return True except Exception as error: ui_logger.error(error) def skill1_required_nomination(self, count): try: self.wait.clear(By.XPATH, self.__e_skill1_required_nom_xpath, 'skill1_required_nomination') self.wait.web_element_wait_send_keys( By.XPATH, self.__e_skill1_required_nom_xpath, count, 'search_skill2_interviewers') print('Skill-1 nominations count - Entered') return True except Exception as error: ui_logger.error(error) def skill2_required_nomination(self, count): try: self.wait.clear(By.XPATH, self.__e_skill2_required_nom_xpath, 'skill2_required_nomination') self.wait.web_element_wait_send_keys( By.XPATH, self.__e_skill2_required_nom_xpath, count, 'search_skill2_interviewers') print('Skill-2 nominations count - Entered') return True except Exception as error: ui_logger.error(error) def send_mail_interviewers(self): try: time.sleep(1) self.wait.web_element_wait_click(By.XPATH, self.__e_send_mail_xpath, 'send_mail_interviewers') print('Send mail to interviewers - Sent') return True except Exception as error: ui_logger.error(error) def confirm_button(self): try: time.sleep(1) self.wait.web_element_wait_click(By.XPATH, self.__e_confirm_button_xpath, 'send_mail_interviewers') print('Ok confirmation - Confirmed') return True except Exception as error: ui_logger.error(error) def criteria_notifier(self, message): try: self.wait.loading() self.notifier.glowing_messages(message) return True except Exception as error: ui_logger.error(error) def criteria_notifier_dismiss(self): try: self.notifier.dismiss_message() self.wait.loading() self.scroll.up(0, 70) return True except Exception as error: ui_logger.error(error)
class CandidateQueryReplyPage: __e_search_xpath = Locators.PLACEHOLDER['place_holder'].format('Find') __e_subject_xpath = Locators.TITLE['title'] __e_reply_message_xpath = Locators.PLACEHOLDER['all_place_holder'].format( 'Your message here...') __e_mark_close_xpath = Locators.BUTTONS['button'].format('Mark as Closed') __e_ok_xpath = Locators.BUTTONS['button'].format('OK') __e_reply_button_xpath = Locators.TITLE['title'].format('Reply') __e_status_bucket_xpath = Locators.QUERY['status_bucket'] def __init__(self, driver): self.driver = driver self.wait = WebElementWait(self.driver) self.notifier = Notifier(self.driver) def search_candidate_query(self, candidate_name): try: self.wait.embrace_loading() self.wait.clear(By.XPATH, self.__e_search_xpath, 'more_queries') self.wait.web_element_wait_send_keys(By.XPATH, self.__e_search_xpath, candidate_name, 'more_queries') print('Searching for proper record') return True except Exception as error: ui_logger.error(error) def select_proper_query_based_on_subject(self, subject): try: time.sleep(1) self.wait.web_element_wait_click( By.XPATH, self.__e_subject_xpath.format(subject), 'select_proper_query_based_on_subject') self.wait.embrace_loading() print('Proper block based on proper subject - Selected') return True except Exception as error: ui_logger.error(error) def reply_message_entry(self, message): try: self.wait.web_element_wait_send_keys(By.XPATH, self.__e_reply_message_xpath, message, 'reply_message_entry') print('reply_message_entry - Entered') return True except Exception as error: ui_logger.error(error) def reply_to_query(self): try: self.wait.web_element_wait_click(By.XPATH, self.__e_reply_button_xpath, 'reply_to_query') print('reply_to_query - Clicked') time.sleep(0.5) return True except Exception as error: ui_logger.error(error) def in_progress_tab(self): try: self.wait.web_element_wait_send_keys(By.XPATH, self.__e_status_bucket_xpath, 'In Progress', 'in_progress_tab') self.wait.embrace_loading() print('in_progress_tab - Selected') return True except Exception as error: ui_logger.error(error) def mark_as_closed(self): try: self.wait.web_element_wait_click(By.XPATH, self.__e_mark_close_xpath, 'mark_as_closed') print('mark_as_closed - Clicked') return True except Exception as error: ui_logger.error(error) def confirm_button(self): try: self.wait.web_element_wait_click(By.XPATH, self.__e_ok_xpath, 'confirm_button') print('confirm_button - Clicked') return True except Exception as error: ui_logger.error(error)
class EventSlot: __e_current_status_xpath = Locators.TITLE['title'].format('Current Status') __e_search_status_xpath = Locators.TITLE['title'].format( 'Type here to search') __e_select_search_item_xpath = Locators.MULTI_SELECTIONS[ 'moveAllItemsRight'] __e_done_button_xpath = Locators.BUTTONS['done'] __e_slot_number_xpath = Locators.PLACEHOLDER['num_ph'].format( 'No. Of Slots') __e_go_button_xpath = Locators.BUTTONS['button'].format('Go') __e_date_field_xpath = Locators.PLACEHOLDER['place_holder'].format( 'From Date') __e_time_field_xpath = Locators.PLACEHOLDER['place_holder'].format( 'From Time') __e_count_field_xpath = Locators.PLACEHOLDER['num_ph'].format('Count') __e_assign_button_xpath = Locators.EVENT_LOBBY['assign_slot'] __e_ok_button_xpath = Locators.BUTTONS['all_buttons'].format('OK') __e_cancel_button_xpath = Locators.BUTTONS['all_buttons'].format('CANCEL') __e_candidate_id_xpath = Locators.PLACEHOLDER['place_holder'].format( 'Candidate Id(s) (Eg: 1234, 2312,...)') __e_search_button_xpath = Locators.BUTTONS['button'].format(' Search') __e_login_link_xpath = Locators.TITLE['title'].format( 'View Interview Lobby Link') __e_header_tag = Locators.TAG['h4'] __e_anchor_tag = Locators.TAG['anchor'] __e_href_tag = Locators.TAG['href'] def __init__(self, driver): self.driver = driver self.wait = WebElementWait(self.driver) self.page_scroll = PageScroll.PageScroll(self.driver) self.candidate_login_link = '' def current_applicant_status_choose(self): try: self.wait.loading() self.wait.web_element_wait_click( By.XPATH, self.__e_current_status_xpath, 'Slot_applicant_current_status_click') return True except Exception as error: ui_logger.error(error) def search_status_select(self, stage_status): try: self.wait.web_element_wait_send_keys(By.XPATH, self.__e_search_status_xpath, stage_status, 'Entered_status') self.wait.web_element_wait_click(By.XPATH, self.__e_select_search_item_xpath, 'Move_all_items') self.wait.web_element_wait_click(By.XPATH, self.__e_done_button_xpath, 'Done_button') return True except Exception as error: ui_logger.error(error) def slot_number(self, number_of_slots): try: time.sleep(1) self.wait.web_element_wait_send_keys(By.XPATH, self.__e_slot_number_xpath, number_of_slots, 'Entered_status') return True except Exception as error: ui_logger.error(error) def go_button(self): try: self.wait.web_element_wait_click(By.XPATH, self.__e_go_button_xpath, 'Go_button') return True except Exception as error: ui_logger.error(error) def date_field(self, date): try: self.wait.web_element_wait_send_keys(By.XPATH, self.__e_date_field_xpath, date, 'date_field') return True except Exception as error: ui_logger.error(error) def time_field(self, clock): try: self.wait.web_element_wait_send_keys(By.XPATH, self.__e_time_field_xpath, clock, 'time_field') return True except Exception as error: ui_logger.error(error) def count_field(self, count): try: self.wait.web_element_wait_send_keys(By.XPATH, self.__e_count_field_xpath, count, 'count_field') return True except Exception as error: ui_logger.error(error) def clear_time_field(self): try: self.wait.clear(By.XPATH, self.__e_time_field_xpath, 'clear_time_field') return True except Exception as error: ui_logger.error(error) def assign_slot_button(self): try: self.wait.loading() self.wait.web_element_wait_click(By.XPATH, self.__e_assign_button_xpath, 'assign_slot_button') return True except Exception as error: ui_logger.error(error) def ok_button(self): try: self.wait.loading() self.wait.web_element_wait_click(By.XPATH, self.__e_ok_button_xpath, 'ok_button') return True except Exception as error: ui_logger.error(error) def search_id(self, candidate_id): try: self.wait.loading() self.wait.web_element_wait_send_keys(By.XPATH, self.__e_candidate_id_xpath, candidate_id, 'candidate_id_field') return True except Exception as error: ui_logger.error(error) def search_button(self): try: self.wait.web_element_wait_click(By.XPATH, self.__e_search_button_xpath, 'search_button') return True except Exception as error: ui_logger.error(error) def login_link_action(self): try: time.sleep(1) self.page_scroll.down(0, -100) self.wait.web_element_wait_click(By.XPATH, self.__e_login_link_xpath, 'Copy_login_link_action') return True except Exception as error: ui_logger.error(error) def copy_candidate_login_link(self, candidate_id): try: time.sleep(2) self.wait.web_element_wait_click(By.TAG_NAME, self.__e_header_tag, 'Link_Block') time.sleep(1.5) self.wait.web_elements_wait(By.TAG_NAME, self.__e_anchor_tag) lists = self.wait.perform for i in lists: if i.get_attribute(self.__e_href_tag) is not None: if candidate_id in i.get_attribute(self.__e_href_tag): self.candidate_login_link = i.get_attribute( self.__e_href_tag) print( f'candidate login link - {self.candidate_login_link}' ) return True except Exception as error: ui_logger.error(error) def cancel_button(self): try: self.wait.web_element_wait_click(By.XPATH, self.__e_cancel_button_xpath, 'link_cancel_button') return True except Exception as error: ui_logger.error(error)