def move_to_element_and_click(self, locator1, locator2): """Move the mouse cursor to a locator and perform a click operation on it (or another element that might be activated by the move operation). Examples: """ ui_lib.move_to_element_and_click(locator1, locator2)
def open_san_zoning_edit_dialog(): xpath_action = FusionSANPage.ID_SAN_ZONED_POLICY_EDIT try: ui_lib.wait_for_element(xpath_action, 10) except: pass logger._log_to_console_and_log_file("Open SAN Zoning Edit Dialog") ui_lib.move_to_element_and_click(xpath_action, xpath_action)
def delete_dashboard(*dashboard_obj): """ Delete Dashboard """ selenium2lib = ui_lib.get_s2l() if not selenium2lib._is_element_present(FusionDashboardPage.ID_PAGE_LABEL): navigate() if type(dashboard_obj) is test_data.DataObj: dashboard_obj = [dashboard_obj] elif type(dashboard_obj) is tuple: dashboard_obj = list(dashboard_obj[0]) for dashboard in dashboard_obj: if len(dashboard.title.strip()) > 0: logger._log_to_console_and_log_file( "\nVerifying Dashboard %s exist..." % dashboard.title) ui_lib.wait_for_element_visible( FusionDashboardPage.ID_LINK_ADD_DASHBOARD) if selenium2lib._is_visible( FusionDashboardPage.ID_LINK_DASHBOARD_NAME % dashboard.title): logger._log_to_console_and_log_file( "Dashboard exist, Deleting Dashboard %s..." % dashboard.title) ui_lib.move_to_element_and_click( FusionDashboardPage.ID_LINK_DASHBOARD_NAME % dashboard.title, FusionDashboardPage.ID_LINK_DASHBOARD_DELETE % dashboard.title) ui_lib.wait_for_element_and_click( FusionDashboardPage.ID_BTN_DASHBOARD_DELETE_CONFIRM) ui_lib.wait_for_element_notvisible( FusionDashboardPage.ID_LINK_DASHBOARD_NAME % dashboard.title) logger._log_to_console_and_log_file("Dashboard %s deleted" % dashboard.title) return True else: message = "Dashboard -- %s is not available or not visible in the Dashboards Page" % dashboard.title raise AssertionError(message) else: message = "\n%s has Dashboard title name is empty" % dashboard.name raise AssertionError(message)
def remove_custom_dashboard_panel(cls, dashboard_panel, timeout=5, fail_if_false=True): logger.debug("remove custom dashboard panel [%s]" % dashboard_panel) ui_lib.move_to_element_and_click(GeneralDashboardElements.ID_DASHBOARD_PANEL % dashboard_panel, RemoveDashboardPanelElements.ID_REMOVE_DASHBOARD_PANEL % dashboard_panel) ui_lib.wait_for_element_visible(RemoveDashboardPanelElements.ID_DIALOG_REMOVE_DASHBOARD_PANEL, timeout, fail_if_false) ui_lib.wait_for_element_and_click(RemoveDashboardPanelElements.ID_BUTTON_REMOVE_PANEL_YES_REMOVE, timeout, fail_if_false)
def remove_dashboard_panel(cls, dashboard_panel): logger.debug("remove dashboard panel [%s]" % dashboard_panel) ui_lib.move_to_element_and_click(GeneralDashboardElements.ID_DASHBOARD_PANEL % dashboard_panel, RemoveDashboardPanelElements.ID_REMOVE_DASHBOARD_PANEL % dashboard_panel)
def edit_dashboard(*edit_dashboard_obj): """ Edit Dashboard """ selenium2lib = ui_lib.get_s2l() if not selenium2lib._is_element_present(FusionDashboardPage.ID_PAGE_LABEL): navigate() if type(edit_dashboard_obj) is test_data.DataObj: edit_dashboard_obj = [edit_dashboard_obj] elif type(edit_dashboard_obj) is tuple: edit_dashboard_obj = list(edit_dashboard_obj[0]) for dashboard in edit_dashboard_obj: if len(dashboard.title.strip()) > 0: logger._log_to_console_and_log_file("\nEditing Dashboard %s ..." % dashboard.name) ui_lib.wait_for_element_visible( FusionDashboardPage.ID_LINK_ADD_DASHBOARD) # Check if Dashboard exist and click on Edit if selenium2lib._is_visible( FusionDashboardPage.ID_LINK_DASHBOARD_NAME % dashboard.title): logger._log_to_console_and_log_file( "Dashboard exist, Editing Dashboard %s..." % dashboard.title) ui_lib.move_to_element_and_click( FusionDashboardPage.ID_LINK_DASHBOARD_EDIT % dashboard.title, FusionDashboardPage.ID_LINK_DASHBOARD_EDIT % dashboard.title) if selenium2lib._is_visible( FusionDashboardPage.ID_EDIT_DASHBOARD_PANEL_LABEL): ui_lib.wait_for_element_and_click( FusionDashboardPage. ID_COMBO_ADD_DASHBOARD_PANEL_DROPDOWN) ui_lib.wait_for_element_and_click( FusionDashboardPage.ID_COMBO_ADD_DASHBOARD_PANEL_SELECT % dashboard.panel) ui_lib.wait_for_element_and_click( FusionDashboardPage. ID_COMBO_ADD_DASHBOARD_RESOURCES_DROPDOWN) ui_lib.wait_for_element_and_click( FusionDashboardPage. ID_COMBO_ADD_DASHBOARD_RESOURCES_SELECT % dashboard.resource) ui_lib.wait_for_element_and_click( FusionDashboardPage.ID_TXT_ADD_DASHBOARD_TITLE) ui_lib.wait_for_element_and_input_text( FusionDashboardPage.ID_TXT_ADD_DASHBOARD_TITLE, dashboard.title) ui_lib.wait_for_element_and_click( FusionDashboardPage.ID_TXT_ADD_DASHBOARD_QUERY) ui_lib.wait_for_element_and_input_text( FusionDashboardPage.ID_TXT_ADD_DASHBOARD_QUERY, dashboard.query) if dashboard.type.lower() == "custom": # Select Type Custom and input caption ui_lib.wait_for_element_and_click( FusionDashboardPage. ID_COMBO_ADD_DASHBOARD_TYPE_DROPDOWN) ui_lib.wait_for_element_and_click( FusionDashboardPage. ID_COMBO_ADD_DASHBOARD_TYPE_SELECT % dashboard.type) ui_lib.wait_for_element_and_click( FusionDashboardPage.ID_TXT_ADD_DASHBOARD_CAPTION) ui_lib.wait_for_element_and_input_text( FusionDashboardPage.ID_TXT_ADD_DASHBOARD_CAPTION, dashboard.caption) if dashboard.editslice.lower() == "add": # add new slice ui_lib.wait_for_element_and_click( FusionDashboardPage.ID_BTN_ADD_SLICE) ui_lib.wait_for_element_and_click( FusionDashboardPage.ID_TXT_ADD_SLICE_LABEL) ui_lib.wait_for_element_and_input_text( FusionDashboardPage.ID_TXT_ADD_SLICE_LABEL, dashboard.slicelabel) ui_lib.wait_for_element_and_click( FusionDashboardPage.ID_TXT_ADD_SLICE_QUERY) ui_lib.wait_for_element_and_input_text( FusionDashboardPage.ID_TXT_ADD_SLICE_QUERY, dashboard.slicequery) ui_lib.wait_for_element_and_click( FusionDashboardPage.ID_BTN_ADD_SLICE_OK) elif dashboard.editslice.lower() == "edit": # Edit current slice ui_lib.move_to_element_and_click( FusionDashboardPage.ID_LINK_ADD_SLICE_EDIT % dashboard.editslicelabel, FusionDashboardPage.ID_LINK_ADD_SLICE_EDIT % dashboard.editslicelabel) ui_lib.wait_for_element_and_input_text( FusionDashboardPage.ID_TXT_ADD_SLICE_LABEL, dashboard.slicelabel) ui_lib.wait_for_element_and_click( FusionDashboardPage.ID_TXT_ADD_SLICE_QUERY) ui_lib.wait_for_element_and_input_text( FusionDashboardPage.ID_TXT_ADD_SLICE_QUERY, dashboard.slicequery) ui_lib.wait_for_element_and_click( FusionDashboardPage.ID_BTN_ADD_SLICE_OK) elif dashboard.type.lower() == "status": # Select Type Status ui_lib.wait_for_element_and_click( FusionDashboardPage. ID_COMBO_ADD_DASHBOARD_TYPE_DROPDOWN) ui_lib.wait_for_element_and_click( FusionDashboardPage. ID_COMBO_ADD_DASHBOARD_TYPE_SELECT % dashboard.type) # Input other Label and click add ui_lib.wait_for_element_and_input_text( FusionDashboardPage.ID_TXT_ADD_DASHBOARD_OTHER_LABEL, dashboard.otherlabel) ui_lib.wait_for_element_and_click( FusionDashboardPage.ID_BTN_EDIT_DASHBOARD_OK) return True else: message = "\n Dashboard %s is not editable" % dashboard.title raise AssertionError(message) else: message = "\n Dashboard %s does not exist or not visible" % dashboard.title raise AssertionError(message) else: message = "\n%s Dashboard title is empty" % dashboard.name raise AssertionError(message)
def add_label_to_networks(network_obj): """ On the Networks Page, add the label to the networks """ s2l = ui_lib.get_s2l() """ Navigate to Network Page """ logger._log_to_console_and_log_file( "Function call to add label for each network ") if not ui_lib.wait_for_element(FusionNetworksPage.ID_PAGE_LABEL): navigate() if isinstance(network_obj, test_data.DataObj): network_obj = [network_obj] elif isinstance(network_obj, tuple): network_obj = list(network_obj) for net in network_obj: ui_lib.wait_for_element_and_click(FusionNetworksPage.ID_LINK_RESET) if not select_network(net.networkname): return False ui_lib.wait_for_element(FusionNetworksPage.ID_NETWORK_LIST) ui_lib.wait_for_element_and_click( FusionNetworksPage.ID_COMBO_MENU_VIEW) ui_lib.wait_for_element_and_click( FusionNetworksPage.ID_DROPDOWN_SELECTION) if ui_lib.wait_for_element(FusionNetworksPage.ID_EDIT_LABEL): ui_lib.move_to_element_and_click(FusionNetworksPage.ID_LABEL, FusionNetworksPage.ID_EDIT_LABEL) if ui_lib.wait_for_element(FusionNetworksPage.ID_EDIT_LABEL_PANEL): ui_lib.wait_for_element_and_input_text( FusionNetworksPage.ID_LABEL_NAME, net.lname, 20) ui_lib.wait_for_element_and_click( FusionNetworksPage.ID_ADD_LABEL_BTN) ui_lib.wait_for_element_and_click( FusionNetworksPage.ID_OK_LABEL_BTN) else: logger._warn("Failed to navigate edit label panel") return False else: logger._warn("Could not find Edit button to add label") if ui_lib.wait_for_element(FusionNetworksPage.ID_ADDED_LABEL % net.lname): ui_lib.wait_for_element_and_click( FusionNetworksPage.ID_ADDED_LABEL % net.lname) network_list = [] ui_lib.wait_for_element(FusionNetworksPage.ID_NETWORK_LIST_NAMES) network_list = [ ui_lib.get_text(s) for s in s2l._element_find( FusionNetworksPage.ID_NETWORK_LIST_NAMES, False, False) ] for network in network_list: if network.lower() == net.networkname.lower(): logger._log_to_console_and_log_file( "Label {0} is successfully added to the network '{1}'". format(net.lname, net.networkname)) else: logger._warn("Failed to add label to the selected network") return False return True