コード例 #1
0
    def ctrl_device_power(self):
        """
        This function opens the control device url to turn on/off the
         third outlet (RLNK-915R) to test UUT auto ping response

        """
        outlet3 = "//*[@id='outletControl']/div[4]"
        stateBtn = "html/body/div[8]/div[2]/form[1]/button[1]"

        self.ctrlDriver = webdriver.Firefox()
        self.ctrlDriver.implicitly_wait(10)

        ipAddress = get_ip_addresses()
        self.ctrlUrl = ipAddress[1]  # control device url
        try:
            self.ctrlDriver.get(self.ctrlUrl)
        except:
            print "Invalid IP Address"

        ctrlDriver = SeleniumDriver(self.ctrlDriver)
        ctrlDriver.element_click(outlet3, XPATH)

        # turn outlet off and close success message alert
        time.sleep(3)
        ctrlDriver.wait_and_click(stateBtn, XPATH)
        ctrlDriver.wait_and_click("btnOk", ID)
        ctrlDriver.wait_and_click(close_btn_msg(), XPATH)

        time.sleep(3)
        self.ctrlDriver.quit()
コード例 #2
0
    def test_initial_outlet_state(self):
        driver = SeleniumDriver(self.driver)
        iniOutletStateSelect = "//*[@id='deviceSettings']/p[6]/select"
        rememberPriorState = "//*[@id='deviceSettings']/p[6]/select/option[1]"

        self.restore_device_settings()
        time.sleep(3)
        self.open_device_settings()

        time.sleep(3)
        driver.wait_and_click(iniOutletStateSelect, XPATH)

        time.sleep(3)
        driver.wait_and_click(rememberPriorState, XPATH)

        driver.wait_and_click(save_btn(), XPATH)
        driver.wait_and_click(close_btn_msg(), XPATH)

        time.sleep(3)
        self.open_device_settings()

        select = Select(
            self.driver.find_element_by_xpath(iniOutletStateSelect))
        selected_option = select.first_selected_option

        if selected_option.text == 'Remember prior state':
            correctSelect = True
        else:
            correctSelect = False

        assert correctSelect == True
コード例 #3
0
    def seq_up(self):
        """ Tests sequence up
            Asserts a valid delay input
        """

        driver = SeleniumDriver(self.driver)
        outletBoxList = self.driver.find_elements_by_xpath(outlet_box_xpath())
        upBtn = ".//*[@id='sequenceControl']/div[2]/div/button[1]"
        initiateBtn = ".//*[@id='seqDelayCtrl']/div/button[2]"
        delayInput = ".//*[@id='seqDelayCtrl']/span/input"
        inputNum = 1

        numOfOutletBox = len(outletBoxList)
        index = 2
        for outlet in outletBoxList:
            if index > numOfOutletBox: break

            outletCtrlStr = ".//*[@id='outletControl']/div[{0}]/div[1]".format(index)

            if self.is_on(outletCtrlStr):
                index += 1
            else:
                driver.wait_and_click(upBtn, XPATH)
                driver.send_input(delayInput, XPATH, inputNum)

                driver.wait_and_click(initiateBtn, XPATH)
                break
コード例 #4
0
    def test_power_state_verify_not_changed(self):
        """
        Verify that the power state has not changed
        after clicking the cancel button

        """

        driver = SeleniumDriver(self.driver)
        outletBoxList = self.driver.find_elements_by_xpath(outlet_box_xpath())
        powerStateBtn = '//div[8]/div[2]/form[1]/button[1]'

        for outletBox in outletBoxList:
            time.sleep(5)
            outletBox.click()

            if self.is_on(powerStateBtn):
                powerState = True
            else:
                powerState = False

            driver.wait_and_click(powerStateBtn, XPATH)
            driver.wait_and_click("btnCancel", ID)
            driver.wait_and_click(outlet_cancel_btn(), XPATH)

            if powerState:
                assert powerState == True

            if self.is_on(powerStateBtn) is False:
                assert powerState == False
コード例 #5
0
    def open_network_settings(self):
        network_settings = "//nav/ul/li[7]"

        driver = SeleniumDriver(self.driver)
        driver.get_element(menu(), XPATH)
        driver.wait_and_click(menu(), XPATH)

        time.sleep(3)
        driver.force_click(network_settings, XPATH)
コード例 #6
0
    def open_device_settings(self):
        menuIcon = ".//*[@id='wrapper']/header/i"
        deviceSettings = "//nav/ul/li[3]"

        driver = SeleniumDriver(self.driver)
        driver.get_element(menuIcon, XPATH)
        driver.wait_and_click(menuIcon, XPATH)
        time.sleep(3)
        driver.force_click(deviceSettings, XPATH)
コード例 #7
0
    def test_edit_cancel_btn(self):
        """
        Verification of Outlet Edit mode and Cancel Button Functionality
        verify that the outlet has the “guitarSolo” class
        verify that the outlet no longer has the “guitarSolo” class

        """
        driver = SeleniumDriver(self.driver)
        outletBoxList = self.driver.find_elements_by_xpath(outlet_box_xpath())
        outletEditMode = "//div[8]"

        index = 2
        for outletBox in outletBoxList:
            expectedOpGood = True
            time.sleep(5)
            outletBox.click()

            outletElemClass = driver.get_element_attribute(outletEditMode, XPATH, ClASS)

            if 'guitarSolo' in outletElemClass:
                assert expectedOpGood == True

            driver.wait_and_click(outlet_cancel_btn(), XPATH)

            time.sleep(1)
            assert driver.is_element_present(outletEditMode, XPATH) == False

            index += 1
    def test_seq_down(self):
        """ Tests sequence down
            Asserts a valid delay input
        """

        driver = SeleniumDriver(self.driver)
        outletBoxList = self.driver.find_elements_by_xpath(outlet_box_xpath())
        outletsWithStateOff = self.driver.find_elements_by_class_name("state-off")

        downBtn = ".//*[@id='sequenceControl']/div[2]/div/button[2]"
        initiateBtn = ".//*[@id='seqDelayCtrl']/div/button[2]"
        delayInput = ".//*[@id='seqDelayCtrl']/span/input"
        inputNum = 3

        numOfOutletBox = len(outletBoxList)
        numOutletsStateOff = len(outletsWithStateOff)

        self.restore_seq_defaults()

        time.sleep(4)
        if numOutletsStateOff == numOfOutletBox:
            self.turn_outlets_on()

        index = numOfOutletBox
        for outlet in outletBoxList[::-1]:
            outletCtrlStr = ".//*[@id='outletControl']/div[{0}]/div[1]".format(index)

            if self.is_on(outletCtrlStr) is False:
                index -= 1
            else:
                driver.wait_and_click(downBtn, XPATH)
                driver.send_input(delayInput, XPATH, inputNum)

                delayInputVal = driver.get_element_attribute(delayInput, XPATH, VALUE)
                assert 255 >= int(delayInputVal) >= 1

                driver.wait_and_click(initiateBtn, XPATH)
                break
        time.sleep(inputNum * numOfOutletBox)

        outletsWithStateOff = self.driver.find_elements_by_class_name("state-off")
        numOutletsStateOff = len(outletsWithStateOff)
        assert numOutletsStateOff == numOfOutletBox

        self.turn_outlets_on()
    def test_seq_up(self):
        """ Tests sequence up
            Asserts a valid delay input
        """

        driver = SeleniumDriver(self.driver)
        outletBoxList = self.driver.find_elements_by_xpath(outlet_box_xpath())
        upBtn = ".//*[@id='sequenceControl']/div[2]/div/button[1]"
        initiateBtn = ".//*[@id='seqDelayCtrl']/div/button[2]"
        delayInput = ".//*[@id='seqDelayCtrl']/span/input"
        inputNum = 3

        numOfOutletBox = len(outletBoxList)

        outletsWithStateOn = self.driver.find_elements_by_class_name("state-on")
        numOutletsStateOn = len(outletsWithStateOn)

        if numOutletsStateOn == numOfOutletBox:
            self.turn_outlets_off()

        index = 2
        for outlet in outletBoxList:
            if index > numOfOutletBox: break

            outletCtrlStr = ".//*[@id='outletControl']/div[{0}]/div[1]".format(index)

            if self.is_on(outletCtrlStr):
                index += 1
            else:
                driver.wait_and_click(upBtn, XPATH)
                driver.send_input(delayInput, XPATH, inputNum)

                delayInputVal = driver.get_element_attribute(delayInput, XPATH, VALUE)
                assert 255 >= int(delayInputVal) >= 1

                driver.wait_and_click(initiateBtn, XPATH)
                break

        time.sleep(inputNum * numOfOutletBox)

        outletsWithStateOn = self.driver.find_elements_by_class_name("state-on")
        numOutletsStateOn = len(outletsWithStateOn)
        assert numOutletsStateOn == numOfOutletBox
    def turn_outlets_off(self):
        driver = SeleniumDriver(self.driver)
        outletBoxList = self.driver.find_elements_by_xpath(outlet_box_xpath())
        numOfOutletBox = len(outletBoxList)

        downBtn = ".//*[@id='sequenceControl']/div[2]/div/button[2]"
        initiateBtn = ".//*[@id='seqDelayCtrl']/div/button[2]"
        delayInput = ".//*[@id='seqDelayCtrl']/span/input"
        inputNum = 1

        driver.wait_and_click(downBtn, XPATH)
        driver.send_input(delayInput, XPATH, inputNum)

        driver.wait_and_click(initiateBtn, XPATH)

        time.sleep(inputNum * numOfOutletBox)
コード例 #11
0
    def test_device_name(self):
        driver = SeleniumDriver(self.driver)
        deviceName = "//*[@id='deviceSettings']/p[2]/input"

        self.restore_device_settings()
        time.sleep(3)
        self.open_device_settings()

        deviceNameDefault = driver.get_element_attribute(
            deviceName, XPATH, VALUE)

        time.sleep(3)
        driver.send_input(deviceName, XPATH, "Unit Under Test.")

        driver.wait_and_click(save_btn(), XPATH)
        driver.wait_and_click(close_btn_msg(), XPATH)

        time.sleep(3)
        self.open_device_settings()

        driver.get_element(deviceName, XPATH)
        changedDeviceName = driver.get_element_attribute(
            deviceName, XPATH, VALUE)

        assert deviceNameDefault != changedDeviceName
コード例 #12
0
    def test_outlet_name_length(self):
        """
        function to test outlets' name
        outlet name can only accept up to 50 characters (letters, digits, and special characters)

        """

        driver = SeleniumDriver(self.driver)
        outletBoxList = self.driver.find_elements_by_xpath(outlet_box_xpath())
        outletNameElement = '//div[8]/div[2]/input'

        # Random characters with a length of 50 to test outlet's name
        randomChars = 'g#QUfjeTakWbxHCS*6RQ579Wq6sBV3AT?#T!DrZ6#yJpbZzC$@'

        i = 2
        for outletBox in outletBoxList:
            outletCtrlStr = ".//*[@id='outletControl']/div[{0}]/div[1]".format(
                i)
            time.sleep(5)
            driver.wait_and_click(outletCtrlStr, XPATH)
            driver.wait_for_visibility(outletNameElement, XPATH)
            driver.send_input(outletNameElement, XPATH, randomChars)

            driver.wait_and_click(outlet_save_btn(), XPATH)

            time.sleep(2)
            if driver.is_element_present(close_btn_msg(), XPATH):
                assert self.is_hidden_string(success_msg()) == False
                driver.wait_and_click(close_btn_msg(), XPATH)

            time.sleep(5)
            driver.wait_and_click(outletCtrlStr, XPATH)
            inputValue = driver.get_element_attribute(outletNameElement, XPATH,
                                                      VALUE)

            #  assert input
            assert 50 >= len(inputValue) >= 1

            driver.wait_and_click(outlet_cancel_btn(), XPATH)

            i += 1

        time.sleep(3)
        self.restore_outlet_defaults()
コード例 #13
0
    def test_outlet_name_blank(self):
        """
        Verify that the name input box has a red border
        after changing the name to blank/empty

        """

        driver = SeleniumDriver(self.driver)
        outletBoxList = self.driver.find_elements_by_xpath(outlet_box_xpath())
        outletNameElement = '//div[8]/div[2]/input'

        for outletBox in outletBoxList:
            time.sleep(5)
            outletBox.click()
            driver.wait_until_clickable(outletNameElement, XPATH)
            driver.get_element(outletNameElement, XPATH).clear()

            driver.wait_and_click(outlet_save_btn(), XPATH)

            assert self.is_hidden_string(notify_msg()) == False

            driver.wait_and_click("btnOk", ID)
            driver.wait_and_click(outlet_cancel_btn(), XPATH)

            assert self.has_error(outletNameElement) == True
コード例 #14
0
    def test_ip_address_ping(self):
        """
            Asserts that the ip address input value is valid
            test_operation.py contains all the functionality for each test
            Tests:
                '8.8.8.8' -> Valid IP address that works
                '0.8.8.8' -> Cannot start with 0
                '8.8.8.0' -> Cannot end with 0
                '255.8.8.8' -> Each node must be less than 255 and greater than 0
                '.8.8.8' -> A node cannot be empty
                '8.8.8' -> There must be exactly 4 nodes separated by dots (periods)
        """

        driver = SeleniumDriver(self.driver)
        outletBoxList = self.driver.find_elements_by_xpath(outlet_box_xpath())
        enabledBtn = '//div[8]/div[2]/form[1]/button[2]'
        ipAddressInputElem = '//div[8]/div[2]/form[2]/p[1]/input'
        invalid_ips = [
            '0.8.8.8', '8.8.8.0', '255.8.8.8', '20.255.90', '8.8.8',
            '8.8.8.8.8'
        ]

        for outletBox in outletBoxList:
            time.sleep(5)
            outletBox.click()

            if self.is_on(enabledBtn) is False:
                driver.wait_and_click(enabledBtn, XPATH)

            driver.wait_until_clickable(enabledBtn, XPATH)
            driver.get_element(enabledBtn, XPATH)

            if self.is_on(enabledBtn):
                for ip in invalid_ips:
                    driver.wait_until_clickable(ipAddressInputElem, XPATH)
                    driver.send_input(ipAddressInputElem, XPATH, ip)

                    driver.wait_and_click(outlet_save_btn(), XPATH)

                    ipNumVal = driver.get_element_attribute(
                        ipAddressInputElem, XPATH, VALUE)
                    nodes = ip_nodes(ipNumVal)

                    if self.is_hidden_string(notify_msg()) is False:
                        expectedOpGood = True

                        driver.element_click("btnOk", ID)
                        ipInputClass = driver.get_element_attribute(
                            ipAddressInputElem, XPATH, ClASS)

                        if ip.startswith("0"):
                            assert starts_with_zero(
                                ipNumVal, ipInputClass) == expectedOpGood
                        elif ip.endswith("0"):
                            assert ends_with_zero(
                                ipNumVal, ipInputClass) == expectedOpGood
                        elif "255" in ip:
                            assert node_255(ipNumVal,
                                            ipInputClass) == expectedOpGood
                        elif len(nodes) < 4:
                            assert short_ip_node_length(
                                ipNumVal, ipInputClass) == expectedOpGood
                        else:
                            assert long_ip_node_length(
                                ipNumVal, ipInputClass) == expectedOpGood

                        time.sleep(1)

                driver.send_input(ipAddressInputElem, XPATH, "8.8.8.8")
                driver.wait_and_click(outlet_save_btn(), XPATH)
                driver.wait_and_click(close_btn_msg(), XPATH)
コード例 #15
0
    def test_device_location(self):
        driver = SeleniumDriver(self.driver)
        locationInput = "//*[@id='deviceSettings']/p[5]/input"

        self.restore_device_settings()
        time.sleep(3)
        self.open_device_settings()

        locationDefault = driver.get_element_attribute(locationInput, XPATH,
                                                       VALUE)

        time.sleep(3)
        driver.send_input(locationInput, XPATH, "The UUT is at this location.")

        driver.wait_and_click(save_btn(), XPATH)
        driver.wait_and_click(close_btn_msg(), XPATH)

        time.sleep(3)
        self.open_device_settings()

        driver.get_element(locationInput, XPATH)
        changedLocation = driver.get_element_attribute(locationInput, XPATH,
                                                       VALUE)

        assert locationDefault != changedLocation
コード例 #16
0
    def restore_device_settings(self):
        driver = SeleniumDriver(self.driver)
        factoryDefaults = "//nav/ul/li[5]"
        restoreDeviceSet = "//*[@id='factoryDefaults']/p[6]/input"

        driver.wait_and_click(menu(), XPATH)
        time.sleep(3)
        driver.force_click(factoryDefaults, XPATH)

        time.sleep(3)

        driver.element_click(restoreDeviceSet, XPATH)
        driver.wait_and_click(save_btn(), XPATH)

        time.sleep(
            11
        )  # wait for 10 seconds plus another second to click on OK button
        driver.element_click("btnOk", ID)
コード例 #17
0
    def test_network(self):
        driver = SeleniumDriver(self.driver)
        DHCPCheckBox = "//*[@id='networkSettings']/div[3]/input"
        HTTPPort = "//*[@id='networkHttpPort']"
        network_ip_address = "//*[@id='networkIPAddress']"
        subnet_mask = "//*[@id='networkSettings']/p[2]/input"
        gateway = "//*[@id='networkSettings']/p[3]/input"
        dns_1 = ".//*[@id='networkSettings']/p[4]/input"
        dns_2 = "//*[@id='networkSettings']/p[5]/input"
        invalid_ips = [
            '0.8.8.8', '8.8.8.0', '255.8.8.8', '20.255.80', '8.8.8',
            '8.8.8.8.8'
        ]

        self.open_network_settings()
        time.sleep(3)

        driver.send_input(HTTPPort, XPATH, "---")
        driver.wait_and_click(save_btn(), XPATH)

        assert self.is_hidden_string(notify_msg()) == False

        driver.wait_and_click("btnOk", ID)

        driver.wait_and_click(DHCPCheckBox, XPATH)

        for ip in invalid_ips:
            driver.wait_until_clickable(network_ip_address, XPATH)
            driver.send_input(network_ip_address, XPATH, ip)
            driver.send_input(subnet_mask, XPATH, ip)
            driver.send_input(gateway, XPATH, ip)
            driver.send_input(dns_1, XPATH, ip)
            driver.send_input(dns_2, XPATH, ip)
            driver.wait_and_click(save_btn(), XPATH)

            assert self.has_error(network_ip_address) == True
            assert self.is_hidden_string(notify_msg()) == False

            driver.element_click("btnOk", ID)
        driver.wait_and_click(cancel_btn(), XPATH)

        time.sleep(3)
        self.restore_network_settings()
コード例 #18
0
    def test_power_cycle_until_recovery(self):

        driver = SeleniumDriver(self.driver)
        outletBoxList = self.driver.find_elements_by_xpath(outlet_box_xpath())
        powerCycUntilRec = "//div[8]/div[2]/form[2]/select/option[contains(@value, '6')]"
        ipAddressInputElem = '//div[8]/div[2]/form[2]/p[1]/input'
        freqInputElem = "//div[8]/div[2]/form[2]/p[2]/input"
        retriesInputElem = "//div[8]/div[2]/form[2]/p[3]/input"
        selectOptions = "//div[8]/div[2]/form[2]/select"
        cycleDelayElem = "//div[8]/div[2]/form[2]/p[6]/input"
        frequency = 30
        retries = 2
        cycleDelay = 3
        waitTime = (frequency * retries) * 2

        index = 2
        for outletBox in outletBoxList:
            outletCtrlStr = ".//*[@id='outletControl']/div[{0}]/div[1]".format(
                index)
            outletOn = "//*[@id='outletControl']/div[{0}]/div[contains(@class, 'state-on')]".format(
                index)
            autoPingTitle = "//*[@id='outletControl']/div[{0}]/h6".format(
                index)

            time.sleep(5)
            driver.wait_and_click(outletCtrlStr, XPATH)

            self.ctrl_device_power()  # turn outlet off in the control device

            ipAddresses = get_ip_addresses()
            ipAddressToPing = ipAddresses[2]  # ip address to ping

            if self.is_on(outletFace) is False:
                driver.element_click(stateBtn, XPATH)
                driver.element_click("btnOk", ID)
                driver.wait_and_click(close_btn_msg(), XPATH)
                time.sleep(5)
                driver.get_element(outletCtrlStr, XPATH)
                driver.wait_and_click(outletCtrlStr, XPATH)

            if not self.is_on(enableBtn):
                driver.wait_and_click(enableBtn, XPATH)

            # input for ip address to ping, frequency, and retries
            driver.send_input(ipAddressInputElem, XPATH, ipAddressToPing)
            driver.send_input(freqInputElem, XPATH, frequency)
            driver.send_input(retriesInputElem, XPATH, retries)

            time.sleep(3)
            driver.wait_and_click(selectOptions, XPATH)

            if driver.is_element_selected(powerCycUntilRec, XPATH):
                driver.wait_and_click(outlet_save_btn(), XPATH)
            else:
                driver.wait_and_click(powerCycUntilRec, XPATH)
                self.driver.find_element_by_xpath(powerCycUntilRec).send_keys(
                    Keys.ENTER)
                driver.wait_until_clickable(cycleDelayElem, XPATH)
                driver.send_input(cycleDelayElem, XPATH, cycleDelay)
                driver.wait_and_click(outlet_save_btn(), XPATH)

            # in case the notification message pops up
            notifyDisplayed = self.driver.find_element_by_xpath(
                notify_msg()).is_displayed()
            if notifyDisplayed:
                driver.element_click("btnOk", ID)

            # verify if "AutoPing Failed" is in the autoPing title
            driver.wait_text_to_be_present_in_elem(autoPingTitle, XPATH,
                                                   'AutoPing Failed', waitTime)
            autoPingTitleClass = driver.get_element_attribute(
                autoPingTitle, XPATH, "title")
            assert autoPingTitleClass == "AutoPing Failed"

            self.ctrl_device_power(
            )  # turn outlet back on in the control device

            # verify that the outlet in the UUT is on, wait cycle delay
            # then verify that the outlet turned off
            driver.wait_for_visibility(outletOn, XPATH)
            assert self.is_on(outletCtrlStr) == True
            time.sleep(cycleDelay + 1)
            assert self.is_on(outletCtrlStr) == False

            # gets class again and verify if "AutoPing Replied" is in the autoPing title
            driver.wait_text_to_be_present_in_elem(autoPingTitle, XPATH,
                                                   'AutoPing Replied',
                                                   waitTime)
            autoPingTitleClass = driver.get_element_attribute(
                autoPingTitle, XPATH, "title")
            assert autoPingTitleClass == "AutoPing Replied"

            # open outlet in UUT, turn it back on, change ip address to default, & save changes
            time.sleep(3)
            self.change_ip_address_to_default(outletCtrlStr,
                                              ipAddressInputElem)

            index += 1
コード例 #19
0
    def test_power_state_btn_notify_msg(self):
        """
        Verifies that a popup comes up with an Are you sure… message.
        Look for the DOM element “notify”

        """

        driver = SeleniumDriver(self.driver)
        outletBoxList = self.driver.find_elements_by_xpath(outlet_box_xpath())
        powerStateBtn = '//div[8]/div[2]/form[1]/button[1]'

        i=2
        for outletBox in outletBoxList:
            outletCtrlStr = "//*[@id='outletControl']/div[{0}]".format(i)
            time.sleep(5)
            driver.wait_and_click(outletCtrlStr, XPATH)

            if self.is_on(powerStateBtn):
                driver.wait_and_click(powerStateBtn, XPATH)

                assert self.is_hidden_string(notify_msg()) == False
                driver.wait_and_click("btnOk", ID)

                time.sleep(1)
                if driver.is_element_present(success_msg(), XPATH):
                    assert self.is_hidden_string(success_msg()) == False
                    time.sleep(3)
            else:
                driver.wait_and_click(outlet_cancel_btn(), XPATH)

            i += 1

        time.sleep(3)
        self.seq_up()
コード例 #20
0
    def test_verify_notify_msg_250(self):
        """
        Set the Retries to 250 and then click on the Save button.
        Verify that a warning notification appears
        Verify that the input has a red border to show an error.

        """

        driver = SeleniumDriver(self.driver)
        outletBoxList = self.driver.find_elements_by_xpath(outlet_box_xpath())
        retriesInputElem = "//div[8]/div[2]/form[2]/p[3]/input"
        ip_addr_ping = "//div[8]/div[2]/form[2]/p[1]/input"
        enableBtn = "//div[8]/div[2]/form[1]/button[2]"
        retries = 250

        for outletBox in outletBoxList:
            time.sleep(5)
            outletBox.click()

            if not self.is_on(enableBtn):
                driver.wait_and_click(enableBtn, XPATH)

            driver.send_input(ip_addr_ping, XPATH, "8.8.8.8")
            driver.send_input(retriesInputElem, XPATH, retries)
            driver.wait_and_click(outlet_save_btn(), XPATH)

            assert self.is_hidden_string(notify_msg()) == False

            driver.element_click("btnOk", ID)
            driver.element_click(outlet_cancel_btn(), XPATH)

            assert self.has_error(retriesInputElem) == True
コード例 #21
0
    def test_verify_success_msg(self):
        """
        Verify that the Success message appears
        Verify that the outlet shrinks out edit mode and return to original location

        """

        driver = SeleniumDriver(self.driver)
        outletBoxList = self.driver.find_elements_by_xpath(outlet_box_xpath())
        retriesInputElem = "//div[8]/div[2]/form[2]/p[3]/input"
        ip_addr_ping = "//div[8]/div[2]/form[2]/p[1]/input"
        enableBtn = "//div[8]/div[2]/form[1]/button[2]"
        outlet_div = "//div[8]"
        retries = 5

        for outletBox in outletBoxList:
            time.sleep(5)
            outletBox.click()

            if not self.is_on(enableBtn):
                driver.wait_and_click(enableBtn, XPATH)

            driver.send_input(ip_addr_ping, XPATH, "8.8.8.8")
            driver.send_input(retriesInputElem, XPATH, retries)
            driver.wait_and_click(outlet_save_btn(), XPATH)

            driver.wait_for_visibility(success_msg(), XPATH)
            assert self.is_hidden_string(success_msg()) == False

            driver.wait_and_click(close_btn_msg(), XPATH)

            driver.wait_for_invisibility(outlet_div, XPATH)
            assert driver.is_element_present(outlet_div, XPATH) == False
コード例 #22
0
    def test_frequency_zero_input(self):
        """
        Set the Frequency to zero (0)
        Verify that a warning notification appears letting you know the valid range of cycle delay values
        Verify that the input has a red border to show an error.

        """
        driver = SeleniumDriver(self.driver)
        outletBoxList = self.driver.find_elements_by_xpath(outlet_box_xpath())
        freqInputElem = "//div[8]/div[2]/form[2]/p[2]/input"
        enableBtn = "//div[8]/div[2]/form[1]/button[2]"
        ip_addr_ping = "//div[8]/div[2]/form[2]/p[1]/input"
        frequency = 0

        for outletBox in outletBoxList:
            time.sleep(5)
            outletBox.click()

            if not self.is_on(enableBtn):
                driver.wait_and_click(enableBtn, XPATH)

            driver.send_input(ip_addr_ping, XPATH, "8.8.8.8")
            driver.send_input(freqInputElem, XPATH, frequency)
            driver.wait_and_click(outlet_save_btn(), XPATH)

            assert self.is_hidden_string(notify_msg()) == False

            driver.element_click("btnOk", ID)
            driver.element_click(outlet_cancel_btn(), XPATH)

            assert self.has_error(freqInputElem) == True
コード例 #23
0
    def test_seq_power_up(self):
        driver = SeleniumDriver(self.driver)
        sequenceState = "sequenceState"

        self.restore_device_settings()
        time.sleep(3)
        self.open_device_settings()

        sequenceStateDefault = driver.get_element_attribute(
            sequenceState, ID, ClASS)

        time.sleep(3)
        driver.wait_and_click(sequenceState, ID)

        driver.wait_and_click(save_btn(), XPATH)
        driver.wait_and_click(close_btn_msg(), XPATH)

        time.sleep(3)
        self.open_device_settings()

        driver.get_element(sequenceState, ID)
        changedSequenceState = driver.get_element_attribute(
            sequenceState, ID, ClASS)

        assert sequenceStateDefault != changedSequenceState
コード例 #24
0
    def restore_network_settings(self):
        driver = SeleniumDriver(self.driver)
        menuIcon = ".//*[@id='wrapper']/header/i"
        factoryDefaults = "//nav/ul/li[5]"
        restore_network_def = "//*[@id='factoryDefaults']/p[10]/input"

        driver.wait_and_click(menuIcon, XPATH)
        time.sleep(3)
        driver.force_click(factoryDefaults, XPATH)

        time.sleep(3)
        driver.element_click(restore_network_def, XPATH)
        driver.wait_and_click(save_btn(), XPATH)

        time.sleep(
            11
        )  # wait for 10 seconds plus another second to click on OK button
        driver.element_click("btnOk", ID)
    def restore_seq_defaults(self):
        """ This function will set the in sequence checkbox of all of the outlets """

        driver = SeleniumDriver(self.driver)
        menuIcon = ".//*[@id='wrapper']/header/i"
        factoryDefaults = "//nav/ul/li[5]"
        restoreSeqDef = "//*[@id='factoryDefaults']/p[9]/input"

        driver.wait_and_click(menuIcon, XPATH)
        time.sleep(3)
        driver.force_click(factoryDefaults, XPATH)

        time.sleep(3)

        driver.element_click(restoreSeqDef, XPATH)
        driver.wait_and_click(save_btn(), XPATH)

        time.sleep(11)
        driver.element_click("btnOk", ID)
    def test_check_inSeq_only(self):
        """
        Verify that the outlet is no longer displayed in the Outlet Control
        section with the “Show in Sequence Outlets Only”
        Verify “There are currently no outlets which are set with in
        sequence setting checked" pops up

        """

        driver = SeleniumDriver(self.driver)
        outletBoxList = self.driver.find_elements_by_xpath(outlet_box_xpath())
        inSeqOnlyOption = "//*[@id='ocFilter']/option[contains(@value, 'sequenced')]"
        inSeqInput = "//div[8]/div[2]/form[1]/p[1]/input[contains(@type, 'checkbox')]"
        clickAway = ".//*[@id='outletControl']/h1"

        time.sleep(3)
        driver.wait_and_click("ocFilter", ID)

        time.sleep(3)
        driver.wait_and_click(inSeqOnlyOption, XPATH)
        driver.wait_and_click(clickAway, XPATH)

        time.sleep(2)
        index = 2
        for outletBox in outletBoxList:
            outletCtrlStr = ".//*[@id='outletControl']/div[{0}]/div[1]".format(index)
            if not outletBox.is_displayed():
                continue

            time.sleep(5)
            outletBox.click()

            driver.wait_and_click(inSeqInput, XPATH)
            driver.wait_and_click(outlet_save_btn(), XPATH)

            time.sleep(8)
            outletDisplayed = self.driver.find_element_by_xpath(outletCtrlStr).is_displayed()
            if not outletDisplayed:
                assert outletDisplayed == False

            index += 1

        theMsgDisplayed = self.driver.find_element_by_xpath(notify_msg()).is_displayed()
        if theMsgDisplayed:
            driver.wait_and_click("btnOk", ID)

        assert theMsgDisplayed == True

        time.sleep(3)
        self.restore_seq_defaults()
コード例 #27
0
    def test_account_name_number(self):
        driver = SeleniumDriver(self.driver)
        accountNameNum = "//*[@id='deviceSettings']/p[3]/input"

        self.restore_device_settings()
        time.sleep(3)
        self.open_device_settings()

        acctNameNumDefault = driver.get_element_attribute(
            accountNameNum, XPATH, VALUE)

        time.sleep(3)
        driver.send_input(accountNameNum, XPATH, "1234567890")

        driver.wait_and_click(save_btn(), XPATH)
        driver.wait_and_click(close_btn_msg(), XPATH)

        time.sleep(3)
        self.open_device_settings()

        driver.get_element(accountNameNum, XPATH)
        changedAcctNameNum = driver.get_element_attribute(
            accountNameNum, XPATH, VALUE)

        assert acctNameNumDefault != changedAcctNameNum
コード例 #28
0
    def test_outlet_name_not_changed(self):
        """
        Click on the outlet
        verify that the name has not changed after clicking the cancel btn.

        """

        driver = SeleniumDriver(self.driver)
        outletBoxList = self.driver.find_elements_by_xpath(outlet_box_xpath())
        outletNameElement = '//div[8]/div[2]/input'

        randomInput = "Outlet Name"

        index = 2
        for outletBox in outletBoxList:
            outletBoxStr = ".//*[@id='outletControl']/div[{0}]".format(index)
            time.sleep(5)
            outletBox.click()
            driver.wait_until_clickable(outletNameElement, XPATH)
            driver.send_input(outletNameElement, XPATH, randomInput)

            driver.wait_and_click(outlet_cancel_btn(), XPATH)

            time.sleep(3)
            driver.wait_and_click(outletBoxStr, XPATH)

            driver.wait_until_clickable(outletNameElement, XPATH)
            driver.get_element(outletNameElement, XPATH)

            inputVal = driver.get_element_attribute(outletNameElement, XPATH,
                                                    VALUE)

            assert inputVal != randomInput

            driver.wait_and_click(outlet_cancel_btn(), XPATH)
            index += 1
コード例 #29
0
    def change_ip_address_to_default(self, outletCtrlStr, ipAddressInputElem):
        driver = SeleniumDriver(self.driver)
        driver.get_element(outletCtrlStr, XPATH)
        driver.wait_and_click(outletCtrlStr, XPATH)
        driver.send_input(ipAddressInputElem, XPATH, "8.8.8.8")
        driver.wait_and_click(outlet_save_btn(), XPATH)

        time.sleep(1)
        if driver.is_element_present(success_msg(), XPATH):
            driver.wait_and_click(close_btn_msg(), XPATH)
        else:
            time.sleep(3)
コード例 #30
0
    def test_power_state_verify_changed(self):
        """
        Verify that the switch and outlet face change state
        Verify that a success message appears
        Verify that the outlet shrinks out of edit mode

        """

        driver = SeleniumDriver(self.driver)
        outletBoxList = self.driver.find_elements_by_xpath(outlet_box_xpath())
        powerStateBtn = '//div[8]/div[2]/form[1]/button[1]'
        outletEditMode = "//div[8]"

        index = 2
        for outletBox in outletBoxList:
            outletCtrlStr = ".//*[@id='outletControl']/div[{0}]/div[1]".format(index)
            time.sleep(5)
            driver.wait_and_click(outletCtrlStr, XPATH)

            if self.is_on(powerStateBtn):
                powerState = True
            else:
                powerState = False

            driver.wait_and_click(powerStateBtn, XPATH)
            driver.wait_and_click("btnOk", ID)

            time.sleep(1)
            if driver.is_element_present(close_btn_msg(), XPATH):
                driver.wait_and_click(close_btn_msg(), XPATH)
                assert self.is_hidden_string(success_msg()) == False

            time.sleep(1)
            assert driver.is_element_present(outletEditMode, XPATH) == False

            driver.element_click(outletCtrlStr, XPATH)

            if powerState:
                if self.is_on(powerStateBtn):
                    assert powerState == True
            else:
                assert powerState == False

            driver.wait_and_click(outlet_cancel_btn(), XPATH)

            index += 1

        time.sleep(3)
        self.seq_up()