示例#1
0
 def wait_until_discover_device_successfully(self, switchName=None, ipAdd=None, timeOut=constants.SELENPY_SYNCSWITCH_TIMEOUT, closeWindow=True):
     """Wait until the discover device switch successful in SNMP Status Window.
 ...    We have 4 arguments:
 ...    - 'switchName': name of switch
 ...    - 'ipAdd': IP address of switch
 ...    - 'timeOut'
 ...    - 'closeWindow'"""
     
     self.snmpStatusIframe.wait_until_page_contains_element()
     driver.select_frame(self.snmpStatusIframe)
     self.snmpTaskStatusIframe.wait_until_page_contains_element()
     driver.select_frame(self.snmpTaskStatusIframe)
     self._wait_for_processing()
     self.snmpStatusTbl.wait_until_element_is_visible()
     waitSwitchDiscover = "Discover Devices"+ "--" + switchName + "--" + ipAdd
     for i in range(0, int(timeOut)):
         self.refreshBtn.click_element()
         time.sleep(1) # hard sleep to waiting for the status changing to successful
         returnRow = self.snmpStatusTbl._get_table_row_map_with_header("Action Type--Device--IP Address", waitSwitchDiscover, "--")
         if(returnRow > 0):
             i += 1
         else:
             break
     driver.unselect_frame()
     if closeWindow:
         self.close_snmp_status_window()
示例#2
0
 def create_cabling(self, typeConnect="Connect", cableFrom=None, cableTo=None, mpoTab=None, mpoType=None, mpoBranches=None, portsTo=None, delimiter=","):
     """typeConnect': Connect or Disconnect
 ...    'cableFrom': the source tree node (containing the end point). Ex: Site/Building/Floor 01/Room 01/1:1 Rack 001/Switch 01/01
 ...    'cableTo': the destination tree node (not containing the end point). Ex: Site/Building/Floor 01/Room 01/1:1 Rack 001/Switch 01
 ...    'mpoTab': when cabling for mpo port type(2 options: Mpo12, Mpo24)
 ...    'mpoType': Options: Mpo12_Mpo12, Mpo12_4xLC, Mpo12_6xLC, Mpo24_Mpo24, Mpo24_12xLC, Mpo24_3xMpo12, Mpo24_2xMpo12, Mpo12_6xLC_EB
 ...    'mpoBranches': when cabling for mpo port type(is depended on mpo_type). Ex: B1,B2,B3
 ...    'portsTo': containing 1 or many end points. Ex: 02,03,04. Quantity of ports_to must be equal quantity of mpo_branches
 ...    'delimiter': the delimiter for mpo_branches and ports_to, the default value is ,"""
     
     listPortTo = portsTo.split(delimiter)
     if mpoBranches is not None:
         listMpoBranch = mpoBranches.split(delimiter)
     
     driver.select_frame(connection.cablingFrame)
     self._wait_for_processing()
     
     connection.cabTreeFromDiv.click_tree_node(cableFrom)
     
     connection._select_mpo_connection_tab(mpoTab)
     connection._select_mpo_connection_type(mpoType)
     
     temp = 0
     for portTo in listPortTo:
         if mpoBranches is not None:
             connection._select_mpo_branch(listMpoBranch[temp])
         pathTo = cableTo + "/" + portTo
         connection.cabTreeToDiv.click_tree_node(pathTo)
         connection._set_connection(typeConnect)
         self._wait_for_processing(3)
         temp += 1
         
     driver.unselect_frame()
示例#3
0
    def create_quareo_unmanaged_connections(self,
                                            filterType,
                                            typeConnect="Connect",
                                            cableFrom=None,
                                            cableTo=None,
                                            portsTo=None,
                                            delimiter=","):
        """typeConnect': Connect or Disconnect
    ...    'filterType': Unassigned Quareo ports OR Assigned Quareo ports
    ...    'cableFrom': the source tree node (containing the end point). Ex: Site/Building/Floor 01/Room 01/1:1 Rack 001/Switch 01/01
    ...    'cableTo': the destination tree node (not containing the end point). Ex: Site/Building/Floor 01/Room 01/1:1 Rack 001/Switch 01
    ...    'portsTo': containing 1 or many end points. Ex: 02,03,04. Quantity of ports_to must be equal quantity of mpo_branches
    ...    'delimiter': the delimiter for mpo_branches and ports_to, the default value is ,"""

        self._filter_on_quareo_unmanaged(filterType)

        listPortTo = portsTo.split(delimiter)

        driver.select_frame(self.qUCIframe)
        self._wait_for_processing()

        self._click_tree_node(self.treeFromDiv, cableFrom)

        temp = 0
        for portTo in listPortTo:
            pathTo = cableTo + "/" + portTo
            self._click_tree_node(self.treeToDiv, pathTo)
            connection._set_connection(typeConnect)
            self._wait_for_processing()
            temp += 1

        driver.unselect_frame()
 def save_patching_window(self):
     self.save_dialog()
     self._wait_for_processing()
     if self.patchingIframe.is_element_existed():
         driver.select_frame(self.patchingIframe)
         self._wait_for_processing()
         driver.unselect_frame()
示例#5
0
 def wait_until_synchronize_successfully(self, switchName=None, ipAdd=None, timeOut=constants.SELENPY_SYNCSWITCH_TIMEOUT, closeWindow=True):
     """Use to wait until the status of switch change to "Scheduled" in SNMP Status Window
 ...    We have 4 arguments:
 ...    - 'switchName': name of switch
 ...    - 'ipAdd': IP address of switch
 ...    - 'timeOut'
 ...    - 'closeWindow'"""
     
     self.snmpStatusIframe.wait_until_page_contains_element()
     driver.select_frame(self.snmpStatusIframe)
     self.snmpTaskStatusIframe.wait_until_page_contains_element()
     driver.select_frame(self.snmpTaskStatusIframe)
     self.snmpStatusTbl.wait_until_element_is_visible()
     pssInfo = "Poll Switch Status"+ "--" + switchName + "--" + ipAdd + "--" + "Scheduled" 
     ddErrorInfo = "Discover Devices Information"+ "--" + switchName + "--" + ipAdd + "--" + "Scheduled For Automatic Retry"
     for i in range(0, timeOut):
         self.refreshBtn.click_element()
         time.sleep(1) # hard sleep to waiting for the status changing to successful
         pssRow = self.snmpStatusTbl._get_table_row_map_with_header("Action Type--Device--IP Address--Status", pssInfo, "--")
         ddErrorRow = self.snmpStatusTbl._get_table_row_map_with_header("Action Type--Device--IP Address--Status", ddErrorInfo, "--")
         if pssRow > 0:
             syncTime = utils.get_current_date_time(resultFormat="%#m/%#d/%#Y %I:%M")
             break
         elif ddErrorRow > 0:
             utils.fatal_error("This managed switch cannot be synchronized. Please double-check it")
         else:
             i += 1
     driver.unselect_frame()
     if closeWindow:
         self.close_snmp_status_window()
     return  syncTime 
 def check_task_list_information_on_patching_window(self, position, name,
                                                    taskType, treeFrom,
                                                    connectionType, treeTo):
     self.dynamicTaskListTable.arguments = [position]
     self.dynamicTaskName.arguments = [
         self.dynamicTaskListTable.locator(), name
     ]
     self.dynamicTaskType.arguments = [
         self.dynamicTaskListTable.locator(), taskType
     ]
     self.dynamicTaskTreeFrom.arguments = [
         self.dynamicTaskListTable.locator(), treeFrom
     ]
     self.dynamicTaskConnectType.arguments = [
         self.dynamicTaskListTable.locator(), connectionType
     ]
     self.dynamicTaskTreeTo.arguments = [
         self.dynamicTaskListTable.locator(), treeTo
     ]
     driver.select_frame(self.patchingIframe)
     self.dynamicTaskTreeTo.mouse_over()
     SeleniumAssert.element_should_be_visible(self.dynamicTaskName)
     SeleniumAssert.element_should_be_visible(self.dynamicTaskType)
     SeleniumAssert.element_should_be_visible(self.dynamicTaskTreeFrom)
     SeleniumAssert.element_should_be_visible(self.dynamicTaskConnectType)
     SeleniumAssert.element_should_be_visible(self.dynamicTaskTreeTo)
     driver.unselect_frame()
示例#7
0
 def open_trace_window_on_cabling(self, treePanel=None, treeNode=None):
     driver.select_frame(connection.cablingFrame)
     self._wait_for_processing()
     if treePanel is not None and treeNode is not None:
         if treePanel == "From":
             self._click_tree_node(connection.cabTreeFromDiv, treeNode)
         elif treePanel == "To":
             self._click_tree_node(connection.cabTreeToDiv, treeNode)
     connection.traceBtn.click_visible_element()
     driver.unselect_frame()
 def _check_connect_button_state(self, frame, isEnabled):
     driver.select_frame(frame)
     self.dynamicConnectionBtn.arguments = ["Connect"]
     if isEnabled:
         SeleniumAssert.element_attribute_value_should_not_contain(
             self.dynamicConnectionBtn, "src", "Disabled")
     else:
         SeleniumAssert.element_attribute_value_should_contain(
             self.dynamicConnectionBtn, "src", "Disabled")
     driver.unselect_frame()
 def check_multiple_checkboxes_states_on_event_notification_profiles_page(
         self, events, enabled, selected, delimiter=","):
     """state: Enabled, Disabled, Selected, Unselected"""
     listEvents = events.split(delimiter)
     driver.select_frame(self.uniqueIframe)
     for event in listEvents:
         self.dynamicEventChk.arguments = [event]
         self._check_multiple_states_of_checkbox(self.dynamicEventChk,
                                                 enabled, selected)
     driver.unselect_frame()
示例#10
0
 def check_port_status_on_cabling_window(self, treePanel=None, treeNode=None, expectedStatus=None):
     driver.select_frame(connection.cablingFrame)
     self._wait_for_processing()
     if treePanel is not None and treeNode is not None:
         if treePanel == "From":
             self._click_tree_node(connection.cabTreeFromDiv, treeNode)
             SeleniumAssert.element_attribute_value_should_contain(connection.cableFromPathDiv, "textContent", expectedStatus)
         elif treePanel == "To":
             self._click_tree_node(connection.cabTreeToDiv, treeNode)
             SeleniumAssert.element_attribute_value_should_contain(connection.cableToPathDiv, "textContent", expectedStatus)
     driver.unselect_frame()
示例#11
0
 def delete_layer_image_files(self, layerName):
     driver.select_frame(self.uniqueIframe)
     self.layerImageTbl.wait_until_page_contains_element()
     tableRow = self.layerImageTbl._get_table_row_map_with_header(
         "Name", layerName, delimiter=",")
     if tableRow > 0:
         self.layerImageTbl._click_table_cell(tableRow, column=1)
         self.deleteBtn.click_visible_element()
         driver.unselect_frame()
         self.confirmDialogBtn.click_visible_element()
     else:
         driver.unselect_frame()
示例#12
0
 def add_layer_image_files(self, name, imagePath):
     driver.select_frame(self.uniqueIframe)
     self.addBtn.wait_until_page_contains_element()
     self.addBtn.click_visible_element()
     self.layerNameTxt.wait_until_element_is_visible()
     self.layerNameTxt.input_text(name)
     administration.uploadFileTxt.choose_file(imagePath)
     #         if backgroundColor is not None:
     #             select background color (waiting for aTiep)
     self.saveBtn.click_visible_element()
     driver.unselect_frame()
     if self.confirmDialogBtn.is_element_existed():
         self.confirmDialogBtn.click_visible_element()
 def check_port_status_on_patching_window(self, statusPanel, treeNode,
                                          status):
     if statusPanel == "From":
         self.click_tree_node_patching("From", treeNode)
         self.dynamicPortStatus.arguments = [
             self.statusFromDiv.locator(), status
         ]
     else:
         self.click_tree_node_patching("To", treeNode)
         self.dynamicPortStatus.arguments = [
             self.statusToDiv.locator(), status
         ]
     driver.select_frame(self.patchingIframe)
     SeleniumAssert.element_should_be_visible(self.dynamicPortStatus)
     driver.unselect_frame()
 def _clear_sub_logging_options(self,
                                subFeature,
                                checkboxes=None,
                                selectedCheckboxes=None,
                                clearingMethod=None,
                                clearEntries=None,
                                daysReminder=None,
                                selectedDate=None,
                                delimiter=","):
     driver.select_frame(self.uniqueIframe)
     if checkboxes is not None:
         listCheckbox = checkboxes.split(delimiter)
         listSelectedCheckbox = selectedCheckboxes.split(delimiter)
         for i in range(0, len(listCheckbox)):
             self.dynamicTrackLoggingChk.arguments = [listCheckbox[i]]
             self.dynamicTrackLoggingChk.select_checkbox(
                 listSelectedCheckbox[i])
     if clearingMethod is not None:
         self.dynamicClearingMethodExpandBtn.arguments = [subFeature]
         self.dynamicClearingMethodExpandBtn.click_visible_element()
         self.dynamicSelectedClearingMethod.arguments = [
             subFeature, clearingMethod
         ]
         self.dynamicSelectedClearingMethod.click_visible_element()
     if clearEntries is not None:
         self.dynamicClearEntriesCbb.arguments = [subFeature]
         self.dynamicSelectedClearEntriesLi.arguments = [
             subFeature, clearEntries
         ]
         self.dynamicClearEntriesCbb.wait_until_element_is_visible()
         self.dynamicClearEntriesCbb.click_visible_element()
         self.dynamicSelectedClearEntriesLi.click_visible_element()
     if daysReminder is not None:
         self.dynamicDaysReminderTxt.arguments = [subFeature]
         self.dynamicDaysReminderTxt.wait_until_element_is_visible()
         self.dynamicDaysReminderTxt.set_customize_attribute_for_element_by_js(
             "value", daysReminder)
     if selectedDate is not None:
         self.dynamicSelectedDateTxt.arguments = [subFeature]
         self.dynamicClearSelectedDateBtn.arguments = [subFeature]
         self.dynamicSelectedDateTxt.wait_until_element_is_visible()
         self.dynamicClearSelectedDateBtn.click_visible_element()
         self.dynamicSelectedDateTxt.input_text(selectedDate)
     self.dynamicDeleteLoggingBtn.arguments = [subFeature]
     self.dynamicDeleteLoggingBtn.click_visible_element()
     driver.unselect_frame()
     self.confirmDialogBtn.click_visible_element()
     self.confirmDialogBtn.click_visible_element()
 def _check_event_exist_state_in_add_event_log_filter(
         self, events, stateExist, delimiter=","):
     """"stateExist: True, False"""
     listEvents = events.split(delimiter)
     driver.select_frame(self.uniqueIframe)
     for event in listEvents:
         self.dynamicEventsItem.arguments = [event]
         if stateExist:
             SeleniumAssert.page_should_contain_element(
                 self.dynamicEventsItem,
                 self.dynamicEventsItem.locator() + " does not exist")
         else:
             SeleniumAssert.page_should_not_contain_element(
                 self.dynamicEventsItem,
                 self.dynamicEventsItem.locator() + " exists")
     driver.unselect_frame()
 def _check_icon_object_on_connections_window(self,
                                              frame,
                                              treePanel,
                                              fromDivTree,
                                              toDivTree,
                                              treeNode,
                                              icon,
                                              delimiter="/"):
     self._does_frame_tree_node_exist(frame, treePanel, fromDivTree,
                                      toDivTree, treeNode, delimiter)
     nodeXpath = self._build_page_tree_node_xpath(treePanel, fromDivTree,
                                                  toDivTree, treeNode,
                                                  delimiter)
     driver.select_frame(frame)
     self.treeObjectIcon.arguments = [nodeXpath, icon]
     SeleniumAssert.element_should_be_visible(self.treeObjectIcon)
     driver.unselect_frame()
示例#17
0
 def wait_until_device_synchronize_successfully(self,
                                                ipAdd=None,
                                                timeOut=constants.
                                                SELENPY_SYNCSWITCH_TIMEOUT):
     self.syncStatusIframe.wait_until_page_contains_element()
     driver.select_frame(self.syncStatusIframe)
     self._wait_for_processing()
     for i in range(0, timeOut):
         ipAddExist = self.syncStatusTbl._get_table_row_map_with_header(
             "IP Address", ipAdd)
         self.refreshBtn.click_visible_element()
         #             time.sleep(1.5) # hard sleep to waiting for the status changing to successful
         self._wait_for_processing()
         if ipAddExist == 0:
             break
         i += 1
     driver.unselect_frame()
    def fill_event_notification_profile(self,
                                        profileName=None,
                                        profileDescription=None,
                                        events=None,
                                        locationPath=None,
                                        integrationService=None,
                                        sendEmail=None,
                                        emailServer=None,
                                        recipients=None,
                                        delimiter="/"):
        ### Step 1 - Input Name & Description ####
        driver.select_frame(self.uniqueIframe)
        if profileName is not None or profileDescription is not None:
            self.eventProfileNameTxt.input_text(profileName)
            self.eventProfileDescriptionTxt.input_text(profileDescription)
            self.nextStep1Btn.click_visible_element()
            self._wait_for_processing()
            self.profileEventsTbl.wait_until_element_is_visible()

        ### Step 2 - Select Events ###
        if events is not None:
            self.select_events_in_event_notification_profiles(
                events, delimiter)
            self.nextOtherStepBtn.click_visible_element()
            self.profileLocationTree.wait_until_element_is_visible()

        ### Step 3 - Select Location ###
        if locationPath is not None:
            self._click_tree_node_checkbox(self.profileLocationTree,
                                           locationPath, delimiter)
            self.nextOtherStepBtn.click_visible_element()
            self.emailServerCbb.wait_until_element_is_visible()

        ### Step 4 - Input Information for Notification Method ###

        # ## For Integration Service
        if integrationService is not None:
            self.useIntegrationServiceOnlyChk

        # ## For Email
        if sendEmail is not None:
            self.sendEmailChk.select_checkbox(sendEmail)
            self.emailSeverSlb.select_from_list_by_label(emailServer)
            self.recipientsTxt.input_text(recipients)
            self.includeEventDetailsChk.select_checkbox()
        driver.unselect_frame()
 def check_trace_object_on_patching(self,
                                    indexObject,
                                    mpoType=None,
                                    objectPosition=None,
                                    objectPath=None,
                                    objectType=None,
                                    portIcon=None,
                                    connectionType=None,
                                    scheduleIcon=None,
                                    informationDevice=None):
     driver.select_frame(self.patchingIframe)
     self._wait_for_processing()
     self.patchingTraceDiv.wait_until_page_contains_element()
     self._check_trace_object(self.patchingTraceDiv, indexObject, mpoType,
                              objectPosition, objectPath, objectType,
                              portIcon, connectionType, scheduleIcon,
                              informationDevice)
     driver.unselect_frame()
 def _check_mpo_connection_type_icon_not_exist(self,
                                               frame,
                                               mpoConnectionType,
                                               mpoConnectionTab=None):
     ''''mpoConnectionType': Options: Mpo12_Mpo12, Mpo12_4xLC, Mpo12_6xLC, Mpo24_Mpo24, Mpo24_12xLC, Mpo24_3xMpo12, Mpo24_2xMpo12, Mpo12_6xLC_EB'''
     driver.select_frame(frame)
     self._select_mpo_connection_tab(mpoConnectionTab)
     self.dynamicConnectionType.arguments = [
         mpoConnectionType, mpoConnectionType
     ]
     self.dynamicDisabledConnectionType.arguments = [
         mpoConnectionType, mpoConnectionType
     ]
     SeleniumAssert.element_should_not_be_visible(
         self.dynamicConnectionType)
     SeleniumAssert.element_should_not_be_visible(
         self.dynamicDisabledConnectionType)
     driver.unselect_frame()
示例#21
0
 def check_synchronize_switch_successfully(self, switchName=None, ipAdd=None, closeWindow=True):
     """Use to check the status of switch change to "Scheduled" in SNMP Status Window.
 ...    We have 3 arguments:
 ...    - 'switchName': name of switch
 ...    - 'ipAdd': IP address of switch
 ...    - 'closeWindow'"""
 
     self.snmpStatusIframe.wait_until_page_contains_element()
     driver.select_frame(self.snmpStatusIframe)
     self.snmpTaskStatusIframe.wait_until_page_contains_element()
     driver.select_frame(self.snmpTaskStatusIframe)
     self.snmpStatusTbl.wait_until_element_is_visible()
     switchStatus = switchName + "--" + ipAdd + "--" + "Scheduled"
     returnRow = self.snmpStatusTbl._get_table_row_map_with_header("Device--IP Address--Status", switchStatus, "--")
     Assert.should_be_true(returnRow > 0, "Switch synchronize successfully.")
     driver.unselect_frame()
     if closeWindow:
         self.close_snmp_status_window()
示例#22
0
 def move_services(self, viewObjectFilter=None, moveTreeNode=None, moveTo=None, viewServiceFilter=None, selectObjects=None, moveServiceFrom=None, moveServiceTo=None, delimiterTree="/"):
     services.serviceIframe.wait_until_page_contains_element()
     driver.select_frame(services.serviceIframe)
     
     # Select Object To Move
     if viewObjectFilter is not None:
         self.viewFilterCbb.wait_until_element_is_visible()
         self.viewFilterCbb.select_from_list_by_label(viewObjectFilter)
         self.moveTreeDiv.click_tree_node(moveTreeNode, delimiterTree)
         driver.unselect_frame()
         self.dialogOkBtn.click_visible_element()
         self._select_iframe(services.serviceIframe, services.leftTreeDiv)
     
     # Select New Location
     services.rightTreeDiv.wait_until_element_is_visible()
     if moveTo is not None:
         services.rightTreeDiv.click_tree_node(moveTo, delimiterTree)
     self.moveBtn.click_visible_element()
     
     # Move Services For Object
     if viewServiceFilter is not None:
         self.viewServiceFilterCbb.select_from_list_by_label(viewServiceFilter)
     if selectObjects is not None:
         listObject = selectObjects.split(",")
         for selectobject in listObject:
             returnRow = self.selectObjectTbl._get_table_row_map_with_header("Object", selectobject)
             self.selectObjectTbl._click_table_cell(returnRow, 2)
     if moveServiceFrom is not None:
         services.leftTreeDiv.click_tree_node(moveServiceFrom, delimiterTree)
     if moveServiceTo is not None:
         services.rightTreeDiv.click_tree_node(moveServiceTo, delimiterTree)
     self.moveBtn.click_visible_element()
     driver.unselect_frame()
     self.confirmDialogBtn.click_visible_element()
     driver.select_frame(services.serviceIframe)
     self.moveBtn.wait_until_element_attribute_contains("disabled", "true")
     driver.unselect_frame()
     self.dialogOkBtn.click_visible_element()
     
    def create_port_fields_data(self,
                                connectionId=None,
                                serviceTicketId=None,
                                cordLength=None,
                                cordType=None,
                                cordColor=None,
                                portField1=None,
                                portField2=None,
                                portField3=None,
                                portField4=None,
                                portField5=None,
                                fieldLabel1=None,
                                fieldLabel2=None,
                                fieldLabel3=None,
                                fieldLabel4=None,
                                fieldLabel5=None):
        driver.select_frame(self.uniqueIframe)
        administration._wait_for_sub_page_display("Port Fields")
        self._set_port_fields_checkbox("Connection ID", connectionId)
        self._set_port_fields_checkbox("Service Ticket ID", serviceTicketId)
        self._set_port_fields_checkbox("Cord Length", cordLength)
        self._set_port_fields_checkbox("Cord Type", cordType)
        self._set_port_fields_checkbox("Cord Color", cordColor)
        portFieldList = ["Field 1", "Field 2", "Field 3", "Field 4", "Field 5"]
        portFieldStatusList = [
            portField1, portField2, portField3, portField4, portField5
        ]
        portFieldLabelList = [
            fieldLabel1, fieldLabel2, fieldLabel3, fieldLabel4, fieldLabel5
        ]
        for i in range(len(portFieldList)):
            self._set_port_fields_checkbox(portFieldList[i],
                                           portFieldStatusList[i])
            self._enter_field_label(portFieldList[i], portFieldLabelList[i])

        self.saveBtn.click_visible_element()
        driver.unselect_frame()
        self.dialogOkBtn.click_visible_element()
        self.dialogOkBtn.wait_until_element_is_not_visible()
 def complete_work_order(self, woNames, delimiter=","):
     self._select_iframe(workOrders.woQueueIframe, self.markCompleteBtn)
     temp = 0
     while temp < constants.SELENPY_DEFAULT_TIMEOUT:
         if self.editBtn.is_element_inactive():
             self.select_object_on_wo_queue_table(woNames, delimiter)
             self.woQueueTbl.wait_for_element_outer_html_not_change()
         else:
             break
         temp += 1
     count = 0
     while count < constants.SELENPY_DEFAULT_TIMEOUT:
         if not self.dialogOkBtn.return_wait_for_element_visible_status():
             self.markCompleteBtn.click_element()
             driver.unselect_frame()
         else:
             break
         count += 1
     self.dialogOkBtn.click_visible_element()
     driver.select_frame(workOrders.woQueueIframe)
     self._wait_for_processing()
     driver.unselect_frame()
 def _check_icon_mpo_port_type_on_connections_window(
         self,
         frame,
         treePanel,
         fromDivTree,
         toDivTree,
         treeNode,
         portType,
         isExisted,
         delimiter="/"):
     self._does_frame_tree_node_exist(frame, treePanel, fromDivTree,
                                      toDivTree, treeNode, delimiter)
     nodeXpath = self._build_page_tree_node_xpath(treePanel, fromDivTree,
                                                  toDivTree, treeNode,
                                                  delimiter)
     driver.select_frame(frame)
     self.treePortTypeIcon.arguments = [nodeXpath, portType]
     if isExisted:
         SeleniumAssert.element_should_be_visible(self.treePortTypeIcon)
     else:
         SeleniumAssert.element_should_not_be_visible(self.treePortTypeIcon)
     driver.unselect_frame()
 def _check_mpo_connection_type_state(self,
                                      frame,
                                      mpoConnectionType,
                                      isEnabled,
                                      mpoConnectionTab=None):
     ''''mpoConnectionType': Options: Mpo12_Mpo12, Mpo12_4xLC, Mpo12_6xLC, Mpo24_Mpo24, Mpo24_12xLC, Mpo24_3xMpo12, Mpo24_2xMpo12, Mpo12_6xLC_EB'''
     driver.select_frame(frame)
     self._select_mpo_connection_tab(mpoConnectionTab)
     if isEnabled:
         self.dynamicConnectionType.arguments = [
             mpoConnectionType, mpoConnectionType
         ]
         elementEnabledExist = self.dynamicConnectionType.return_wait_for_element_visible_status(
             3)
         Assert.should_be_true(elementEnabledExist)
     else:
         self.dynamicDisabledConnectionType.arguments = [
             mpoConnectionType, mpoConnectionType
         ]
         elementDisabledExist = self.dynamicDisabledConnectionType.return_wait_for_element_visible_status(
             3)
         Assert.should_be_true(elementDisabledExist)
     driver.unselect_frame()
示例#27
0
 def click_add_conduits_button(self):
     driver.select_frame(self.conduitsFrame)
     self.addConduitBtn.click_visible_element()
     self.treeFromDiv.wait_until_element_is_visible()
     driver.unselect_frame()
示例#28
0
 def close_add_conduits_window(self):
     driver.select_frame(self.conduitsFrame)
     self.addConduitsCancelBtn.click_visible_element()
     driver.unselect_frame()
    def create_patching(self,
                        patchFrom,
                        patchTo,
                        portsFrom,
                        portsTo,
                        typeConnect="Connect",
                        mpoTab=None,
                        mpoType=None,
                        mpoBranches=None,
                        delimiter=",",
                        delimiterTree="/",
                        createWo=True,
                        clickNext=True):
        """'type': Connect or Disconnect
    ...    'patchFrom': the source tree node (not containing the end point). Ex: Site/Building/Floor 01/Room 01/1:1 Rack 001/Switch 01
    ...    'patchTo': the destination tree node (not containing the end point). Ex: Site/Building/Floor 01/Room 01/1:1 Rack 001/Switch 01
    ...    'mpoTab': when patching for mpo port type(2 options: Mpo12, Mpo24)
    ...    'mpoType': Options: Mpo12_Mpo12, Mpo12_4xLC, Mpo12_6xLC, Mpo24_Mpo24, Mpo24_12xLC, Mpo24_3xMpo12, Mpo24_2xMpo12, Mpo12_6xLC_EB (*Mpo12-3xMpo12* and *Mpo12-2xMpo12*) => describe 3xMpo12-Mpo24, 2xMpo12-Mpo24
    ...    'mpoBranches': when patching for mpo port type(is depended on mpo_type). Ex: B1,B2,B3
    ...    'portsFrom': containing 1 or many end points. Ex: 02,03,04. Quantity of ports_to must be equal quantity of mpo_branches
    ...    'portsTo': containing 1 or many end points. Ex: 02,03,04. Quantity of ports_to must be equal quantity of mpo_branches
    ...    'delimiter': the delimiter for mpo_branches and ports_to, the default value is ,"""
        listPortFrom = portsFrom.split(delimiter)
        listPortTo = portsTo.split(delimiter)
        numberPortFrom = len(listPortFrom)
        numberPortTo = len(listPortTo)

        driver.select_frame(self.patchingIframe)
        self._wait_for_processing()
        self.treeFromDiv.wait_until_element_is_visible()
        self._wait_for_loading_tree()

        if mpoBranches is None:
            pathFrom = patchFrom + delimiterTree + portsFrom
            self.treeFromDiv.click_tree_node(pathFrom, delimiterTree)
            pathTo = patchTo + delimiterTree + portsTo
            self.treeToDiv.click_tree_node(pathTo, delimiterTree)
            connection._set_connection(typeConnect)
            self._wait_for_processing()
        else:
            listMpoBranch = mpoBranches.split(delimiter)
            temp = 0
            for branch in listMpoBranch:
                if numberPortFrom == 1:
                    pathFrom = patchFrom + delimiterTree + portsFrom
                else:
                    pathFrom = patchFrom + delimiterTree + listPortFrom[temp]
                self.treeFromDiv.click_tree_node(pathFrom, delimiterTree)
                if temp == 0:
                    connection._select_mpo_connection_tab(mpoTab)
                    connection._select_mpo_connection_type(mpoType)
                connection._select_mpo_branch(branch)
                if numberPortTo == 1:
                    pathTo = patchTo + delimiterTree + portsTo
                else:
                    pathTo = patchTo + delimiterTree + listPortTo[temp]
                self.treeToDiv.click_tree_node(pathTo, delimiterTree)
                connection._set_connection(typeConnect)
                self._wait_for_processing()
                temp += 1

        connection.createWoChk.select_checkbox(createWo)
        driver.unselect_frame()
        if clickNext:
            self.save_patching_window()
示例#30
0
 def _select_iframe(self, frame, waitElement):
     frame.wait_until_page_contains_element()
     driver.select_frame(frame)
     waitElement.wait_until_page_contains_element()