def __init__(self, driver): super(DropdownSettings, self).__init__(driver) self.edit = base.Button(driver, self._locator.DROPDOWN_SETTINGS_EDIT) self.permalink = base.Button(driver, self._locator.DROPDOWN_SETTINGS_PERMALINK) self.delete = base.Button(driver, self._locator.DROPDOWN_SETTINGS_DELETE)
def __init__(self, driver): super(ControlsModal, self).__init__(driver) # labels self.modal_title = base.Label(self.modal_elem, self._locators.MODAL_TITLE) self.title = base.Label(self.modal_elem, self._locators.TITLE) self.description = base.Label(self.modal_elem, self._locators.DESCRIPTION) self.test_plan = base.Label(self.modal_elem, self._locators.TEST_PLAN) self.notes = base.Label(self.modal_elem, self._locators.NOTES) self.code = base.Label(self.modal_elem, self._locators.CODE) self.kind_or_nature = base.Label(self.modal_elem, self._locators.KIND_OR_NATURE) self.fraud_related = base.Label(self.modal_elem, self._locators.FRAUD_RELATED) self.frequency = base.Label(self.modal_elem, self._locators.FREQUENCY) self.assertions = base.Label(self.modal_elem, self._locators.ASSERTIONS) self.admin = base.Label(self.modal_elem, self._locators.ADMIN) self.significance = base.Label(self.modal_elem, self._locators.SIGNIFICANCE) self.type_or_means = base.Label(self.modal_elem, self._locators.TYPE_OR_MEANS) self.categories = base.Label(self.modal_elem, self._locators.CATEGORIES) self.state = base.Label(self.modal_elem, self._locators.STATE) self.ui_description = base.Iframe(self.modal_elem.parent, self._locators.UI_DESCRIPTION) self.ui_test_plan = base.Iframe(self.modal_elem.parent, self._locators.UI_TEST_PLAN) self.ui_notes = base.Iframe(self.modal_elem.parent, self._locators.UI_NOTES) self.ui_code = base.TextInputField(self.modal_elem, self._locators.UI_CODE) # multi input fields self.ref_url = base.MultiInputField(self.modal_elem.parent, self._locators.REF_URL_CSS) # datepickers self.ui_effective_date = base.DatePicker( self.modal_elem, self._locators.EFFECTIVE_DATE, self._locators.DATEPICKER_EFFECTIVE_DATE) # dropdowns self.ui_kind_or_nature = base.Dropdown( self.modal_elem, self._locators.DROPDOWN_KIND_OR_NATURE) self.ui_fraud_related = base.Dropdown( self.modal_elem, self._locators.DROPDOWN_FRAUD_RELATED) self.ui_type_or_means = base.Dropdown( self.modal_elem, self._locators.DROPDOWN_TYPE_OR_MEANS) self.ui_frequency = base.Dropdown(self.modal_elem, self._locators.DROPDOWN_FREQUENCY) # selectable lists self.selectable_assertions = base.Selectable( self.modal_elem, self._locators.SELECTABLE_ASSERTIONS) self.selectable_categories = base.Selectable( self.modal_elem, self._locators.SELECTABLE_CATEGORIES) # buttons self.button_add_owner = base.Button(self.modal_elem, self._locators.BUTTON_ADD_OWNER) self.button_hide_all_optional_fields = base.Button( self.modal_elem, self._locators.BUTTON_HIDE_ALL_OPTIONAL_FIELDS)
def __init__(self, driver): super(_Workflows, self).__init__(driver) self.button_active = base.Button( self._driver, locator.LhnMenu.BUTTON_WORKFLOWS_ACTIVE) self.button_inactive = base.Button( self._driver, locator.LhnMenu.BUTTON_WORKFLOWS_INACTIVE) self.button_draft = base.Button(self._driver, locator.LhnMenu.BUTTON_WORKFLOWS_DRAFT)
def __init__(self, driver): super(ExportPage, self).__init__(driver) self.export_page = self._driver.find_element( *self._locators.EXPORT_PAGE_CSS) self.add_obj_type_btn = base.Button( self.export_page, self._locators.ADD_OBJECT_TYPE_BTN_XPATH) self.export_objs_btn = base.Button( self.export_page, self._locators.EXPORT_OBJECTS_BTN_CSS)
def __init__(self, driver): super(UserList, self).__init__(driver) self.button_logout = base.Button( self._driver, self.locators.BUTTON_LOGOUT) self.notifications = base.Label( self._driver, self.locators.NOTIFICATIONS) self.checkbox_daily_digest = base.Checkbox( self._driver, self.locators.CHECKBOX_DAILY_DIGEST) self.button_help = base.Button( self._driver, self.locators.BUTTON_HELP)
def __init__(self, driver): super(ExportPage, self).__init__(driver) self.export_page = self._driver.find_element( *self._locators.EXPORT_PAGE_CSS) self.export_panels = self.get_list_export_panels() self.export_format_dd = base.DropdownStatic( self.export_page, self._locators.EXPORT_FORMAT_DD_CSS) self.add_obj_type_btn = base.Button( self.export_page, self._locators.ADD_OBJECT_TYPE_BTN_CSS) self.export_objs_btn = base.Button( self.export_page, self._locators.EXPORT_OBJECTS_BTN_CSS)
def set_dropdown_url(self, url): """Set evidence url via dropdown.""" base.Button( self._driver, locator.ModalSetValueForAsmtCA.BUTTON_ADD_URL).click() base.TextInputField( self._driver, locator.ModalSetValueForAsmtCA.INPUT_EVIDENCE_URL).enter_text( url) base.Button( self._driver, locator.ModalSetValueForAsmtCA.BUTTON_CONFIRM_URL).click()
def __init__(self, driver): super(Dashboard, self).__init__(driver) self.button_start_new_program = base.Button( self._driver, self._locators.BUTTON_START_NEW_PROGRAM) self.button_start_new_audit = base.Button( self._driver, self._locators.BUTTON_START_NEW_AUDIT) self.button_start_new_workflow = base.Button( self._driver, self._locators.BUTTON_START_NEW_WORKFLOW) self.button_create_new_object = base.Button( self._driver, self._locators.BUTTON_CREATE_NEW_OBJECT) self.button_all_objects = base.Button( self._driver, self._locators.BUTTON_ALL_OBJECTS)
def __init__(self, driver): super(UserList, self).__init__(driver) self.button_logout = base.Button(self._driver, self.locators.BUTTON_LOGOUT) self.notifications = base.Label(self._driver, self.locators.NOTIFICATIONS) self.checkbox_daily_digest = base.Checkbox( self._driver, self.locators.CHECKBOX_DAILY_DIGEST) self.button_admin_dashboard = base.Button( self._driver, self.locators.BUTTON_ADMIN_DASHBOARD) self.button_help = base.Button(self._driver, self.locators.BUTTON_HELP) self.button_data_export = base.Button(self._driver, self.locators.BUTTON_DATA_EXPORT)
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 generate_and_close(self): """Save this objects and close modal.""" self.button_generate_and_close = base.Button( self._driver, self._locator_button_generate) self.button_generate_and_close.click() selenium_utils.get_when_invisible(self._driver, self._locator_button_generate)
def open_create(self): """Click to Create button on Tree View to open new object creation modal. Return: lib.page.modal.create_new_object."create_obj_cls" """ base.Button(self._driver, self._locators.CREATE_BTN_CSS).click() return self.create_obj_cls(self._driver)
def open_tree_view_3bbs(self): """Click to 3BBS button on Tree View to open modal for further actions. """ _locator_3bbs = (By.CSS_SELECTOR, self._locators.BUTTON_3BBS.format(self.widget_name)) self.button_3bbs = base.Button(self._driver, _locator_3bbs) self.button_3bbs.click()
def _confirm_map_selected(self): """Select Map Selected button to confirm map selected objects to source object. """ base.Button(self._driver, self._locators.BUTTON_MAP_SELECTED).click() selenium_utils.get_when_invisible(self._driver, self._locators.BUTTON_MAP_SELECTED)
def __init__(self, driver): super(_Modal, self).__init__(driver) self.ui_attribute_title = base.TextInputField( self._driver, self._locator.UI_ATTRIBUTE_TITLE) self.button_submit = base.Button(self._driver, self._locator.BUTTON_SAVE_AND_CLOSE)
def __init__(self): super(CompareUpdateObjectModal, self).__init__() self.title_modal = base.Label(self._driver, self._locators.MODAL_TITLE) self.confirmation_text = base.Label(self._driver, self._locators.CONFIRMATION_TEXT) self.button_update = base.Button(self._driver, self._locators.BUTTON_CONFIRM)
def save_set_visible_fields(self): """Save visible fields to display objects on the tree view.""" _locator_set_fields = (By.CSS_SELECTOR, self._locators.BUTTON_SET_FIELDS.format( self.widget_name)) self.button_set_fields = base.Button(self._driver, _locator_set_fields) self.button_set_fields.click()
def open_3bbs(self): """Click to 3BBS button on Tree View to open tree view 3BBS modal. Return: lib.element.tree_view."obj_name"DropdownSettings """ base.Button(self._driver, self._locators.BTN_3BBS_CSS).click() return self.dropdown_settings_cls(self._driver, self.obj_name)
def open_create(self): """Clicks on Create button on Tree View to open new object creation modal. """ base.Button(self._driver, self._locators.CREATE_BTN_CSS).click() if self.obj_name == objects.ASSESSMENT_TEMPLATES: unified_mapper.CloneOrCreateAssessmentTemplatesModal( self._driver, self.obj_name).create_asmt_tmpl_btn.click()
def __init__(self, driver): super(_Modal, self).__init__(driver) self.modal_window = self._driver.find_element(*self._locators.MODAL_CSS) self.attr_title_ui = base.TextInputField( self.modal_window, self._locators.ATTR_TITLE_UI_CSS) self.submit_btn = base.Button( self.modal_window, self._locators.SAVE_AND_CLOSE_BTN_CSS)
def __init__(self, driver, obj_name, is_versions_widget=False): self.obj_name = obj_name self._locators_filter = locator.BaseWidgetGeneric self._locators_widget = factory.get_locator_widget( self.obj_name.upper()) if is_versions_widget: locator_parts = self._locators_widget[1].split("\"") locator_parts[1] += "_version" self._locators_widget = (self._locators_widget[0], "\"".join(locator_parts)) self.info_widget_cls = factory.get_cls_widget(object_name=obj_name, is_info=True) # Filter self.button_help = base.Button(driver, self._locators_filter.HELP_BTN_CSS) self.filter = base.FilterCommon( driver, text_box_locator=self._locators_filter.TXTFIELD_TO_FILTER_CSS, bt_submit_locator=self._locators_filter.FILTER_BTN_CSS) if self.obj_name not in objects.ALL_OBJS_WO_STATE_FILTERING: self.dropdown_states = base.DropdownStatic( driver, self._locators_filter.DD_CSS) super(Widget, self).__init__(driver) self._root = self._browser.element( class_name="widget governance treeview", id=objects.get_singular(self.obj_name)) # Tree View self.tree_view = TreeView(driver, self.info_widget_cls, self.obj_name) # Tab count self.members_listed = None self.member_count = None self._set_members_listed()
def save_and_add_other(self): """Create object and open new Create modal.""" base.Button(self._driver, self._locators.BUTTON_SAVE_AND_ADD_ANOTHER).click() selenium_utils.get_when_invisible( self._driver, self._locators.BUTTON_SAVE_AND_ADD_ANOTHER) return self.__class__(self._driver)
def open_map(self): """Click to Map button on Tree View to open unified mapper modal. Return: lib.page.modal.unified_mapper.MapObjectsModal """ base.Button(self._driver, self._locators.MAP_BTN_CSS).click() return unified_mapper.MapObjectsModal(self._driver, self.obj_name)
def __init__(self, driver, item_text): super(CustomAttributesItemContent, self).__init__(driver) self.item_el = selenium_utils.get_when_visible( self._driver, self._locators.TREE_ITEM_EL_OPENED_CSS) self.add_btn = base.Button(self.item_el, self._locators.ADD_BTN_CSS) self.custom_attributes_list = [] self._item_name = item_text
def __init__(self, driver): super(BaseModal, self).__init__(driver) self.button_save_and_close = base.Button(driver, self._locator_button_save) self.ui_title = base.TextInputField(self._driver, self._locator_ui_title) self.ui_code = base.TextInputField(self._driver, self._locator_ui_code)
def open_info_3bbs(self): """Click to 3BBS button on Info page or Info panel to open modal for further actions. Return: lib.element.widget_info.CommonDropdownSettings """ base.Button(self._driver, self.locator_3bbs).click() return self._dropdown_settings_cls(self._driver, self.is_under_audit)
def __init__(self, driver, obj_name): self.obj_name = obj_name self._locators_filter = factory.get_cls_locators_generic_widget( object_name=obj_name) self._locator_widget = factory.get_locator_widget( self.obj_name.upper()) self.info_widget_cls = factory.get_cls_widget(object_name=obj_name, is_info=True) # Filter self.cls_without_state_filtering = (AssessmentTemplates, ) # Persons, Workflows, TaskGroups, Cycles, CycleTaskGroupObjectTasks self.button_help = base.Button(driver, self._locators_filter.BUTTON_HELP) self.filter = base.FilterCommon( driver, text_box_locator=self._locators_filter.TEXTFIELD_TO_FILTER, bt_submit_locator=self._locators_filter.BUTTON_FILTER) if self.__class__ not in self.cls_without_state_filtering: self.dropdown_states = base.DropdownStatic( driver, dropdown_locator=self._locators_filter.DROPDOWN, elements_locator=self._locators_filter.DROPDOWN_STATES) super(Widget, self).__init__(driver) # Tree View self.tree_view = TreeView(driver, self.info_widget_cls, self.obj_name) # Tab count self.members_listed = None self.member_count = None self._set_members_listed()
def confirm_set_visible_fields(self): """Confirm set visible fields.""" _locator_set_fields = (By.CSS_SELECTOR, self._locators.BUTTON_SET_FIELDS.format( self.widget_name)) base.Button(self._driver, _locator_set_fields).click() selenium_utils.get_when_invisible(self._driver, _locator_set_fields)
def __init__(self, driver): super(DeleteObjectModal, self).__init__(driver) self.title_modal = base.Label(driver, self._locator.MODAL_TITLE) self.confirmation_text = base.Label(driver, self._locator.CONFIRMATION_TEXT) self.title_object = base.Label(driver, self._locator.OBJECT_TITLE) self.button_delete = base.Button(driver, self._locator.BUTTON_DELETE)
def open_create_obj(self): """Open modal from tree view to create new object.""" _locator_create = (By.CSS_SELECTOR, self._locators.BUTTON_CREATE.format( self.widget_name)) self.button_create = base.Button(self._driver, _locator_create) self.button_create.click()