def __init__(self, driver): super(InfoWidget, self).__init__(driver) self.child_cls_name = self.__class__.__name__ self.list_all_headers_txt = [] self.list_all_values_txt = [] self.info_widget_locator = ( self._locators.INFO_PAGE_ELEM if self.is_info_page else self._locators.INFO_PANEL_ELEM) self.info_widget_elem = selenium_utils.get_when_visible( self._driver, self.info_widget_locator) # common for all objects self.title_lbl_txt = self.get_title_lbl_txt() self.title = base.Element( self.info_widget_elem, self._locators.TITLE_ENTERED) self.state_lbl_txt = self._elements.STATE.upper() self.state_txt = self.get_state_txt() self._extend_list_all_scopes( [self.title_lbl_txt, self.state_lbl_txt], [self.title.text, self.state_txt]) self.info_3bbs_btn = selenium_utils.get_when_visible( self.info_widget_elem, self._locators.BUTTON_3BBS) # for Info Page if self.is_info_page: self.info_page_footer = base.Label( self.info_widget_elem, self._locators.TXT_FOOTER_CSS) self.modified_by = selenium_utils.get_when_visible( self.info_widget_elem, self._locators.TXT_MODIFIED_BY_CSS) _created_at_txt, _updated_at_txt = ( self.info_page_footer.text.split( string_utils.Symbols.WHITESPACE * 6)) self.created_at_txt = ( re.sub(element.Common.CREATED_AT, string_utils.Symbols.BLANK, _created_at_txt)) self.updated_at_txt = ( _updated_at_txt.splitlines()[1].replace( "on ", string_utils.Symbols.BLANK)) self._extend_list_all_scopes( [self._elements.CREATED_AT.upper(), self._elements.MODIFIED_BY.upper(), self._elements.UPDATED_AT.upper()], [self.created_at_txt, self.modified_by.text, self.updated_at_txt]) # for Info Panel else: self.panel = ( SnapshotedInfoPanel(self._driver, self.info_widget_elem) if (self.child_cls_name.lower() in objects.ALL_SNAPSHOTABLE_OBJS and self.is_snapshoted_panel) else InfoPanel(self._driver, self.info_widget_elem)) # for tab controller if not self.is_snapshoted_panel: self.tab_container_elem = self.info_widget_elem.find_element( *self._locators.TAB_CONTAINER_CSS) self.tab_container = self._get_tab_container() self.tab_container.tab_controller.active_tab = ( self.tab_container._elements.OBJ_TAB) # for overridable methods self._extend_list_all_scopes_by_code() self._extend_list_all_scopes_by_cas() self._extend_list_all_scopes_by_review_state()
def __init__(self, driver): super(InfoWidget, self).__init__(driver) selenium_utils.wait_for_js_to_load(self._driver) self.child_cls_name = self.__class__.__name__.lower() self.list_all_headers_txt = [] self.list_all_values_txt = [] self.info_widget_locator = (self._locators.INFO_PAGE_ELEM if self.is_info_page else self._locators.INFO_PANEL_ELEM) self.info_widget_elem = selenium_utils.get_when_visible( self._driver, self.info_widget_locator) # common for all objects self.title_lbl_txt = self.get_title_lbl_txt() self.title = base.Element(self.info_widget_elem, self._locators.TITLE_ENTERED) self.state_lbl_txt = self._elements.STATE.upper() self.state_txt = self.get_state_txt() self._extend_list_all_scopes([self.title_lbl_txt, self.state_lbl_txt], [self.title.text, self.state_txt]) self.info_3bbs_btn = selenium_utils.get_when_visible( self.info_widget_elem, self._locators.BUTTON_3BBS) # for Info Page if self.is_info_page: self.info_page_footer = base.Label(self.info_widget_elem, self._locators.TXT_FOOTER_CSS) self.modified_by = selenium_utils.get_when_visible( self.info_widget_elem, self._locators.TXT_MODIFIED_BY_CSS) _created_at_txt, _updated_at_txt = ( self.info_page_footer.text.split(string_utils.WHITESPACE * 6)) self.created_at_txt = (re.sub("Created at", string_utils.BLANK, _created_at_txt)) self.updated_at_txt = (_updated_at_txt.splitlines()[1].replace( "on ", string_utils.BLANK)) self._extend_list_all_scopes([ self._elements.CREATED_AT.upper(), self._elements.MODIFIED_BY.upper(), self._elements.UPDATED_AT.upper() ], [ self.created_at_txt, self.modified_by.text, self.updated_at_txt ]) # for Info Panel else: self.panel = (SnapshotableInfoPanel( self._driver, self.info_widget_elem) if self.child_cls_name in objects.ALL_SNAPSHOTABLE_OBJS else InfoPanel( self._driver, self.info_widget_elem))
def __init__(self, driver): super(InfoWidget, self).__init__(driver) self.child_cls_name = self.__class__.__name__ self.obj_name = objects.get_singular(self.child_cls_name) self.is_asmts_info_widget = ( self.child_cls_name.lower() == objects.ASSESSMENTS) self.list_all_headers_txt = [] self.list_all_values_txt = [] self.info_widget_locator = (self._locators.INFO_PAGE_ELEM if self.is_info_page else self._locators.INFO_PANEL_ELEM) self.info_widget_elem = selenium_utils.get_when_visible( self._driver, self.info_widget_locator) # common for all objects self.title = base.Element(self.info_widget_elem, self._locators.TITLE_ENTERED) self.state_lbl_txt = self._elements.STATE.upper() self.state_txt = self.get_state_txt() self._extend_list_all_scopes(["TITLE", self.state_lbl_txt], [self.title.text, self.state_txt]) self.info_3bbs_btn = self._browser.element( xpath=self._locators.BUTTON_3BBS_XPATH) self.inline_edit_controls = self._browser.elements( class_name="set-editable-group") # for Info Page if self.is_info_page: self.info_page_footer = base.Label(self.info_widget_elem, self._locators.TXT_FOOTER_CSS) self.modified_by = selenium_utils.get_when_visible( self.info_widget_elem, self._locators.TXT_MODIFIED_BY_CSS) _created_at_txt, _updated_at_txt = ( self.info_page_footer.text.split( string_utils.Symbols.WHITESPACE * 6)) self.created_at_txt = (re.sub(element.Common.CREATED_AT, string_utils.Symbols.BLANK, _created_at_txt)) self.updated_at_txt = (_updated_at_txt.splitlines()[2].replace( "on ", string_utils.Symbols.BLANK)) self._extend_list_all_scopes([ self._elements.CREATED_AT.upper(), self._elements.MODIFIED_BY.upper(), self._elements.UPDATED_AT.upper() ], [ self.created_at_txt, self.modified_by.text, self.updated_at_txt ]) # for Info Panel else: self.panel = ( SnapshotedInfoPanel(self._driver, self.info_widget_elem) if (self.child_cls_name.lower() in objects.ALL_SNAPSHOTABLE_OBJS and self.is_snapshoted_panel) else InfoPanel( self._driver, self.info_widget_elem)) # for tab controller if not self.is_snapshoted_panel: self.tab_container_elem = self.info_widget_elem.find_element( *self._locators.TAB_CONTAINER_CSS) self.tab_container = (tab_containers.AssessmentsTabContainer( self._driver, self.tab_container_elem) if self.is_asmts_info_widget else tab_containers.TabContainer( self._driver, self.tab_container_elem)) self.tab_container.tab_controller.active_tab = ( self.tab_container._elements.OBJ_TAB) # core element to find sub elements self.core_elem = (self.info_widget_elem if self.is_snapshoted_panel else self.tab_container.active_tab_elem) # for overridable methods self._extend_list_all_scopes_by_review_state() if not self.is_asmts_info_widget: self._extend_list_all_scopes_by_code() self.comment_area = self._comment_area() self.edit_popup = object_modal.get_modal_obj(self.obj_name, self._driver) self.top_tabs = page_tab.Tabs(self._browser, page_tab.Tabs.TOP) self.tabs = page_tab.Tabs(self._browser, page_tab.Tabs.INTERNAL)
def __init__(self, driver, obj_name): super(CloneOrCreateAssessmentTemplatesModal, self).__init__(driver, obj_name) self.create_asmt_tmpl_btn = base.Element( self.modal_elem, self._locators.CREATE_ASMT_TMPL_BTN_CSS)
def show_generated_results(self): """Wait for Assessments generated successfully message. Click on link to show them. """ base.Element(self._driver, self._locators.SHOW_GENERATED_ASSESSMENTS).click()