Home | History | Annotate | Download | only in ap_configurators
      1 # Copyright (c) 2013 The Chromium Authors. All rights reserved.
      2 # Use of this source code is governed by a BSD-style license that can be
      3 # found in the LICENSE file.
      4 
      5 import belkinF9K_ap_configurator
      6 import logging
      7 from selenium.common.exceptions import TimeoutException as \
      8 SeleniumTimeoutException
      9 
     10 
     11 class BelkinF7D1301APConfigurator(
     12         belkinF9K_ap_configurator.BelkinF9KAPConfigurator):
     13     """Class to configure Belkin F7D1301 v1 (01) router."""
     14 
     15     def __init__(self, ap_config):
     16         super(BelkinF7D1301APConfigurator, self).__init__(ap_config)
     17         self._dhcp_delay = 0
     18 
     19 
     20     def save_page(self, page_number):
     21         """
     22         Save changes and logout from the router.
     23 
     24         @param page_number: the page number to save as an integer.
     25 
     26         """
     27         button = '//input[@type="submit" and @value="Apply Changes"]'
     28         self.click_button_by_xpath(button,
     29                                    alert_handler=self._security_alert)
     30         self.set_wait_time(30)
     31         try:
     32             self.wait.until(lambda _:'index.htm' in self.driver.title)
     33         except SeleniumTimeoutException, e:
     34             xpath= '//h1[contains(text(), "Duplicate Administrator")]'
     35             if (self.driver.find_element_by_xpath(xpath)):
     36                 logging.debug('We got a \'Duplicate Administrator\' page '
     37                               'when we saved the changes.')
     38             else:
     39                 raise RuntimeError("We couldn't save the page" + str(e))
     40         finally:
     41             self.restore_default_wait_time()
     42