def __init__(self, driver, obj_name): super(CommonUnifiedMapperModal, self).__init__(driver) # labels self.modal_elem = selenium_utils.get_when_visible( self._driver, self._locators.MODAL_CSS) self.filter_toggle = base.Toggle(self.modal_elem, self._locators.FILTER_TOGGLE_CSS) self.filter_toggle.is_activated = True self.title_modal = base.Label(self.modal_elem, self._locators.MODAL_TITLE) if obj_name != objects.ASSESSMENT_TEMPLATES: self.obj_type = base.Label(self.modal_elem, self._locators.OBJ_TYPE) # user input elements self.tree_view = base.UnifiedMapperTreeView(self._driver, obj_name=obj_name) self._add_attr_btn = None self.search_result_toggle = base.Toggle( self.modal_elem, self._locators.RESULT_TOGGLE_CSS) self.open_in_new_frontend_btn = self._browser.link( class_name=["btn", "btn-small", "btn-white"], text="Open in new frontend") self._create_and_map_obj_btn = self._browser.element( class_name="modal-header").button(text="Create and map new object") self._obj_type_select = self._browser.element(name="type-select")
def _refresh_elements(self): self.button_dashboard = base.Button(self._driver, self.locators.BUTTON_DASHBOARD) self.button_search = base.Button(self._driver, self.locators.BUTTON_SEARCH) self.button_my_tasks = base.Button(self._driver, self.locators.BUTTON_MY_TASKS) self.button_all_objects = base.Button(self._driver, self.locators.BUTTON_ALL_OBJECTS) self.toggle_user_dropdown = base.Toggle( self._driver, self.locators.TOGGLE_USER_DROPDOWN) self.toggle_lhn_menu = base.Toggle(self._driver, self.locators.TOGGLE_LHN)
def __init__(self, driver, obj_name): super(CommonUnifiedMapperModal, self).__init__(driver) # labels self.filter_toggle = base.Toggle(driver, self._locators.FILTER_TOGGLE_CSS) self.filter_toggle.is_activated = True self.title_modal = base.Label(driver, self._locators.MODAL_TITLE) self.obj_type = base.Label(driver, self._locators.OBJ_TYPE) # user input elements self.tree_view = base.UnifiedMapperTreeView(driver, obj_name=obj_name) self._add_attr_btn = None self.search_result_toggle = base.Toggle( driver, self._locators.RESULT_TOGGLE_CSS)
def __init__(self, driver): super(Programs, self).__init__(driver) # todo: redesign 'Programs' cls init and related methods and tests self.show_advanced = base.Toggle(self.tab_container.active_tab_elem, self._locators.TOGGLE_SHOW_ADVANCED) self.show_advanced.toggle() self.object_review = base.Label(self.info_widget_elem, self._locators.TXT_OBJECT_REVIEW) self.submit_for_review = base.Label( self.info_widget_elem, self._locators.LINK_SUBMIT_FOR_REVIEW) self.description = base.Label(self.tab_container.active_tab_elem, self._locators.DESCRIPTION) self.description_entered = base.Label( self.tab_container.active_tab_elem, self._locators.DESCRIPTION_ENTERED) self.notes = (base.Label(self.tab_container.active_tab_elem, self._locators.NOTES)) self.notes_entered = base.Label(self.info_widget_elem, self._locators.NOTES_ENTERED) self.manager, self.manager_entered = ( self.get_header_and_value_txt_from_people_scopes( self._elements.PROGRAM_MANAGERS.upper())) self.ref_url = base.MultiInputField(self.tab_container.active_tab_elem, self._locators.REF_URL_CSS) self.code = base.Label(self.tab_container.active_tab_elem, self._locators.CODE) self.code_entered = base.Label(self.tab_container.active_tab_elem, self._locators.CODE_ENTERED) self.effective_date = base.Label(self.tab_container.active_tab_elem, self._locators.EFFECTIVE_DATE) self.effective_date_entered = base.Label( self.tab_container.active_tab_elem, self._locators.EFFECTIVE_DATE_ENTERED)
def __init__(self, driver): super(Programs, self).__init__(driver) # todo redesign 'Programs' cls init and related methods and tests self.show_advanced = base.Toggle(self.info_widget_elem, self._locators.TOGGLE_SHOW_ADVANCED) self.show_advanced.toggle() self.object_review = base.Label(self.info_widget_elem, self._locators.TXT_OBJECT_REVIEW) self.submit_for_review = base.Label( self.info_widget_elem, self._locators.LINK_SUBMIT_FOR_REVIEW) self.description = base.Label(self.info_widget_elem, self._locators.DESCRIPTION) self.description_entered = base.Label( self.info_widget_elem, self._locators.DESCRIPTION_ENTERED) self.notes = base.Label(self.info_widget_elem, self._locators.NOTES) self.notes_entered = base.Label(self.info_widget_elem, self._locators.NOTES_ENTERED) self.manager = base.Label(self.info_widget_elem, self._locators.MANAGER) self.manager_entered = base.Label(self.info_widget_elem, self._locators.MANAGER_ENTERED) self.ref_url = base.MultiInputField(self.info_widget_elem, self._locators.REF_URL_CSS) self.code = base.Label(self.info_widget_elem, self._locators.CODE) self.code_entered = base.Label(self.info_widget_elem, self._locators.CODE_ENTERED) self.effective_date = base.Label(self.info_widget_elem, self._locators.EFFECTIVE_DATE) self.effective_date_entered = base.Label( self.info_widget_elem, self._locators.EFFECTIVE_DATE_ENTERED)
def __init__(self, driver): super(Programs, self).__init__(driver) # same for info_page or info_panel or is_under_audit self.show_advanced = base.Toggle( self._driver, self._locators.TOGGLE_SHOW_ADVANCED) self.show_advanced.toggle() self.object_review = base.Label(self._driver, self._locators.OBJECT_REVIEW) self.submit_for_review = base.Label( self._driver, self._locators.SUBMIT_FOR_REVIEW) self.description = base.Label(self._driver, self._locators.DESCRIPTION) self.description_entered = base.Label( self._driver, self._locators.DESCRIPTION_ENTERED) self.notes = base.Label(self._driver, self._locators.NOTES) self.notes_entered = base.Label(self._driver, self._locators.NOTES_ENTERED) self.manager = base.Label(self._driver, self._locators.MANAGER) self.manager_entered = base.Label( self._driver, self._locators.MANAGER_ENTERED) self.ref_url = base.MultiInputField( self._driver, self._locators.REF_URL_CSS) self.code = base.Label(self._driver, self._locators.CODE) self.code_entered = base.Label(self._driver, self._locators.CODE_ENTERED) self.effective_date = base.Label( self._driver, self._locators.EFFECTIVE_DATE) self.effective_date_entered = base.Label( self._driver, self._locators.EFFECTIVE_DATE_ENTERED)
def __init__(self, driver): super(ProgramsModal, self).__init__(driver) # user input elements self.ui_description = base.Iframe( self._driver, self._locators.UI_DESCRIPTION) self.ui_notes = base.Iframe(self._driver, self._locators.UI_NOTES) self.ui_code = base.TextInputField(self._driver, self._locators.UI_CODE) self.ui_state = base.Dropdown(self._driver, self._locators.UI_STATE) self.ui_show_optional_fields = base.Toggle( self._driver, self._locators.BUTTON_SHOW_ALL_OPTIONAL_FIELDS) self.ui_primary_contact = base.TextFilterDropdown( self._driver, self._locators.UI_PRIMARY_CONTACT, self._locators.DROPDOWN_CONTACT) self.ui_secondary_contact = base.TextFilterDropdown( self._driver, self._locators.UI_SECONDARY_CONTACT, self._locators.DROPDOWN_CONTACT) self.ui_program_url = base.TextInputField( self._driver, self._locators.UI_PROGRAM_URL) self.ui_reference_url = base.TextInputField( self._driver, self._locators.UI_REFERENCE_URL) self.ui_effective_date = base.DatePicker( self._driver, self._locators.EFFECTIVE_DATE_DATEPICKER, self._locators.UI_EFFECTIVE_DATE) self.ui_stop_date = base.DatePicker( self._driver, self._locators.STOP_DATE_DATEPICKER, self._locators.UI_STOP_DATE) # static elements self.title = base.Label(self._driver, self._locators.TITLE) self.description = base.Label(self._driver, self._locators.DESCRIPTION) self.program_url = base.Label(self._driver, self._locators.PROGRAM_URL)
def __init__(self, driver): super(Programs, self).__init__(driver) # activate all fields self.show_advanced = base.Toggle( self._driver, self._locators.TOGGLE_SHOW_ADVANCED) self.show_advanced.toggle() self.object_review = base.Label(self._driver, self._locators.OBJECT_REVIEW) self.submit_for_review = base.Label( self._driver, self._locators.SUBMIT_FOR_REVIEW) self.description = base.Label(self._driver, self._locators.DESCRIPTION) self.description_entered = base.Label( self._driver, self._locators.DESCRIPTION_ENTERED) self.notes = base.Label(self._driver, self._locators.NOTES) self.notes_entered = base.Label(self._driver, self._locators.NOTES_ENTERED) self.manager = base.Label(self._driver, self._locators.MANAGER) self.manager_entered = base.Label( self._driver, self._locators.MANAGER_ENTERED) self.program_url = base.Label(self._driver, self._locators.PROGRAM_URL) self.program_url_entered = base.Label( self._driver, self._locators.PROGRAM_URL_ENTERED) self.reference_url = base.Label(self._driver, self._locators.REFERENCE_URL) self.reference_url_entered = base.Label( self._driver, self._locators.REFERENCE_URL_ENTERED) self.code = base.Label(self._driver, self._locators.CODE) self.code_entered = base.Label(self._driver, self._locators.CODE_ENTERED) self.effective_date = base.Label( self._driver, self._locators.EFFECTIVE_DATE) self.effective_date_entered = base.Label( self._driver, self._locators.EFFECTIVE_DATE_ENTERED) self.stop_date = base.Label(self._driver, self._locators.STOP_DATE) self.stop_date_entered = base.Label( self._driver, self._locators.STOP_DATE_ENTERED)
def __init__(self, driver, obj_name): super(CommonUnifiedMapperModal, self).__init__(driver) # labels self.modal_elem = selenium_utils.get_when_visible( self._driver, self._locators.MODAL_CSS) self.filter_toggle = base.Toggle( self.modal_elem, self._locators.FILTER_TOGGLE_CSS) self.filter_toggle.is_activated = True self.title_modal = base.Label(self.modal_elem, self._locators.MODAL_TITLE) if obj_name != objects.ASSESSMENT_TEMPLATES: self.obj_type = base.Label(self.modal_elem, self._locators.OBJ_TYPE) # user input elements self.tree_view = base.UnifiedMapperTreeView( self._driver, obj_name=obj_name) self._add_attr_btn = None self.search_result_toggle = base.Toggle( self.modal_elem, self._locators.RESULT_TOGGLE_CSS) self.close_btn = base.Button(self.modal_elem, self._locators.CLOSE_BTN_CSS)
def __init__(self, driver): super(Assessments, self).__init__(driver) # toggles self.code_section = base.Toggle( self._driver, self._locators.BUTTON_CODE_TOGGLE, locator.Common.DOWN) # mapped objects self.mapped_objects_titles_and_descriptions = self._driver.find_elements( *self._locators.MAPPED_OBJECTS_TITLES_AND_DESCRIPTIONS) if self.mapped_objects_titles_and_descriptions: self.mapped_objects_titles_text = [ mapped_scope.text.splitlines()[0] for mapped_scope in self.mapped_objects_titles_and_descriptions if len(mapped_scope.text.splitlines()) >= 2] self.mapped_objects_descriptions_text = [ mapped_scope.text.splitlines()[1] for mapped_scope in self.mapped_objects_titles_and_descriptions if len(mapped_scope.text.splitlines()) >= 2] self.cas_text = self.get_headers_and_values_dict_from_cas_scopes() # people section self.creators_text, self.creators_entered_text = ( self.get_header_and_value_text_from_custom_scopes( self._elements.CREATORS_.upper(), self._locators.PEOPLE_HEADERS_AND_VALUES)) self.assignees_text, self.assignees_entered_text = ( self.get_header_and_value_text_from_custom_scopes( self._elements.ASSIGNEES_.upper(), self._locators.PEOPLE_HEADERS_AND_VALUES)) self.verifiers_text, self.verifiers_entered_text = ( self.get_header_and_value_text_from_custom_scopes( self._elements.ASSIGNEES_.upper(), self._locators.PEOPLE_HEADERS_AND_VALUES)) # code section self.code_section.toggle() self.code_and_code_entered = self._driver.find_elements( *self._locators.CODE_HEADER_AND_VALUE) if self.code_and_code_entered: self.code_text, self.code_entered_text = [ [mapped_scope.text.split()[0], mapped_scope.text.split()[1]] for mapped_scope in self.code_and_code_entered if len(mapped_scope.text.split()) >= 2][0] self.code_section.toggle(False) # scope self.list_all_headers_text = [ self._elements.CAS.upper(), self.title().text, self._elements.STATE.upper(), self._elements.VERIFIED.upper(), self._elements.CREATORS.upper(), self._elements.ASSIGNEES.upper(), self._elements.VERIFIERS.upper(), self._elements.MAPPED_OBJECTS.upper(), self.code_text] self.list_all_values_text = [ self.cas_text, self.title_entered().text, objects.get_normal_form(self.state().text), self.state().text.upper() in element.AssessmentStates.COMPLETED.upper(), self.creators_entered_text, self.assignees_entered_text, self.verifiers_entered_text, self.mapped_objects_titles_text, self.code_entered_text]
def reload_elements(self): """Each dropdown in LHN has count of members in brackets which we update.""" self.filter = base.FilterLHN(self._driver, locator.LhnMenu.FILTER_TEXT_BOX, locator.LhnMenu.FILTER_SUBMIT_BUTTON, locator.LhnMenu.FILTER_CLEAR_BUTTON) self.pin = base.Toggle(self._driver, locator.LhnMenu.PIN) self.toggle_programs = lhn.Toggle(self._driver, locator.LhnMenu.TOGGLE_PROGRAMS, locator.LhnMenu.COUNT_PROGRAMS) self.toggle_workflows = lhn.Toggle(self._driver, locator.LhnMenu.TOGGLE_WORKFLOWS, locator.LhnMenu.COUNT_WORKFLOWS) self.toggle_audits = lhn.Toggle(self._driver, locator.LhnMenu.TOGGLE_AUDITS, locator.LhnMenu.COUNT_AUDITS) self.toggle_assessments = lhn.Toggle( self._driver, locator.LhnMenu.TOGGLE_ASSESSMENTS, locator.LhnMenu.COUNT_ASSESSMENTS) self.toggle_issues = lhn.Toggle(self._driver, locator.LhnMenu.TOGGLE_ISSUES, locator.LhnMenu.COUNT_ISSUES) self.toggle_directives = base.Toggle(self._driver, locator.LhnMenu.DIRECTIVES) self.toggle_controls_or_objectives = base.Toggle( self._driver, locator.LhnMenu.TOGGLE_CONTROLS_OR_OBJECTIVES) self.toggle_people_or_groups = base.Toggle( self._driver, locator.LhnMenu.TOGGLE_PEOPLE_OR_GROUPS) self.toggle_scope = base.Toggle(self._driver, locator.LhnMenu.TOGGLE_SCOPE) self.toggle_risks_or_threats = base.Toggle( self._driver, locator.LhnMenu.TOGGLE_RISK_OR_THREATS)
def __init__(self, driver): super(Programs, self).__init__(driver) # todo: redesign 'Programs' cls init and related methods and tests self.show_advanced = base.Toggle(self.tab_container.active_tab_elem, self._locators.TOGGLE_SHOW_ADVANCED) self.show_advanced.toggle() self.manager, self.manager_entered = ( self.get_header_and_value_txt_from_people_scopes( self._elements.PROGRAM_MANAGERS.upper())) self._extend_list_all_scopes(self.manager, self.manager_entered) self.effective_date = base.Label(self.tab_container.active_tab_elem, self._locators.EFFECTIVE_DATE) self.reference_urls = self._related_urls(self._reference_url_label)
def __init__(self, driver): """ Args: driver (base.CustomDriver) """ super(Programs, self).__init__(driver) self.show_advanced = base.Toggle(self._driver, self._locator.TOGGLE_SHOW_ADVANCED) # activate all fields self.show_advanced.toggle() self.object_review = base.Label(self._driver, self._locator.OBJECT_REVIEW) self.submit_for_review = base.Label(self._driver, self._locator.SUBMIT_FOR_REVIEW) self.description = base.Label(self._driver, self._locator.DESCRIPTION) self.description_entered = base.Label( self._driver, self._locator.DESCRIPTION_ENTERED) self.notes = base.Label(self._driver, self._locator.NOTES) self.notes_entered = base.Label(self._driver, self._locator.NOTES_ENTERED) self.manager = base.Label(self._driver, self._locator.MANAGER) self.manager_entered = base.Label(self._driver, self._locator.MANAGER_ENTERED) self.program_url = base.Label(self._driver, self._locator.PROGRAM_URL) self.program_url_entered = base.Label( self._driver, self._locator.PROGRAM_URL_ENTERED) self.code = base.Label(self._driver, self._locator.CODE) self.code_entered = base.Label(self._driver, self._locator.CODE_ENTERED) self.effective_date = base.Label(self._driver, self._locator.EFFECTIVE_DATE) self.effective_date_entered = base.Label( self._driver, self._locator.EFFECTIVE_DATE_ENTERED) self.stop_date = base.Label(self._driver, self._locator.STOP_DATE) self.stop_date_entered = base.Label(self._driver, self._locator.STOP_DATE_ENTERED) self.primary_contact = base.Label(self._driver, self._locator.PRIMARY_CONTACT) self.primary_contact_entered = base.Label( self._driver, self._locator.PRIMARY_CONTACT_ENTERED) self.secondary_contact = base.Label(self._driver, self._locator.SECONDARY_CONTACT) self.secondary_contact_entered = base.Label( self._driver, self._locator.SECONDARY_CONTACT_ENTERED) self.reference_url = base.Label(self._driver, self._locator.REFERENCE_URL) self.reference_url_entered = base.Label( self._driver, self._locator.REFERENCE_URL_ENTERED)
def __init__(self, driver): super(ProgramsModal, self).__init__(driver) # user input elements self.ui_description = base.TextInputField( self.modal_elem, self._locators.UI_DESCRIPTION) self.ui_notes = base.TextInputField(self.modal_elem, self._locators.UI_NOTES) self.ui_state = base.Dropdown(self.modal_elem, self._locators.UI_STATE) self.ui_show_optional_fields = base.Toggle( self.modal_elem, self._locators.BUTTON_SHOW_ALL_OPTIONAL_FIELDS) self.ui_effective_date = base.DatePicker( self.modal_elem, self._locators.EFFECTIVE_DATE_DATEPICKER, self._locators.UI_EFFECTIVE_DATE) # static elements self.title = base.Label(self.modal_elem, self._locators.TITLE) self.description = base.Label(self.modal_elem, self._locators.DESCRIPTION)
def button_maximize_minimize(self): """Button (toggle) maximize and minimize for Info Panels.""" return base.Toggle(self.info_widget_elem, self._locators.BUTTON_MAXIMIZE_MINIMIZE, locator.Common.NORMAL)