| # Copyright (c) 2013 The Chromium Authors. All rights reserved. |
| # Use of this source code is governed by a BSD-style license that can be |
| # found in the LICENSE file. |
| |
| import ap_spec |
| import edimax_ap_configurator |
| import os |
| import time |
| |
| class Edimax6428nsAPConfigurator( |
| edimax_ap_configurator.EdimaxAPConfigurator): |
| """Derived class to control the Edimax-Br6428 AP.""" |
| |
| def navigate_to_page(self, page_number): |
| """Navigate to the required page. |
| |
| @param page_number: The page number to navigate to. |
| |
| """ |
| if page_number == 1: |
| # Open the general settings page. |
| page_url = os.path.join(self.admin_interface_url ,'wlbasic.asp') |
| self.get_url(page_url) |
| self.wait_for_object_by_xpath('//select[@name="band"]') |
| elif page_number == 2: |
| # Open the security settings page. |
| page_url = os.path.join(self.admin_interface_url ,'wlencrypt.asp') |
| self.get_url(page_url) |
| self.wait_for_object_by_xpath('//select[@name="method"]') |
| else: |
| raise RuntimeError('Invalid page number passed. Number of pages is' |
| '%d, page value sent was %d' % |
| (self.get_number_of_pages(), page_number)) |
| |
| |
| def save_page(self, page_number): |
| """ Save page after applying settings. |
| |
| @param page_number: The page number to be saved. |
| |
| """ |
| xpath_ok = ('//input[@name="okbutton"]') |
| self.click_button_by_xpath('//input[@src="graphics/apply1.gif"]', |
| alert_handler=self._alert_handler) |
| self.driver.find_element_by_xpath('//input[@value="APPLY"]').click() |
| element = self.wait_for_object_by_xpath(xpath_ok) |
| xpath_done = '//input[@name="okbutton" and @value="OK"]' |
| while element and not(self.object_by_xpath_exist(xpath_done)): |
| time.sleep(0.5) |
| self.click_button_by_xpath(xpath_ok, alert_handler=self._alert_handler) |
| |
| |
| def _set_security_wpapsk(self, security, shared_key, update_interval=None): |
| self.wait_for_object_by_xpath('//input[@name="pskValue"]') |
| self.select_item_from_popup_by_xpath('WPA pre-shared key', |
| '//select[@name="method"]') |
| if security == ap_spec.SECURITY_TYPE_WPAPSK: |
| wpa_item = 'wpaCipher1' |
| else: |
| wpa_item = 'wpaCipher2' |
| self.click_button_by_id(wpa_item, alert_handler=self._alert_handler) |
| self.select_item_from_popup_by_xpath('Passphrase', |
| '//select[@name="pskFormat"]') |
| self.set_content_of_text_field_by_xpath(shared_key, |
| '//input[@name="pskValue"]', |
| abort_check=True) |
| |
| |
| def _set_security_wep(self, key_value, authentication): |
| self.wait_for_object_by_xpath('//input[@name="key1"]') |
| self.select_item_from_popup_by_xpath('WEP', '//select[@name="method"]') |
| self.select_item_from_popup_by_xpath('64-bit', |
| '//select[@name="length"]') |
| self.select_item_from_popup_by_xpath('ASCII (5 characters)', |
| '//select[@name="format"]') |
| self.set_content_of_text_field_by_xpath(key_value, |
| '//input[@name="key1"]', |
| abort_check=True) |