网页界面自动化测试,网页界面自动化,#!/usr/bin/


#!/usr/bin/python# -*- coding: utf-8 -*-__author__ = 'hshao'from selenium.webdriver.common.by import Byfrom webui import WebElement#=======================================================================# FuncName:MapElement# Desc:# # Para:# Return:# Date: 2014-05-31 18:03# Author: hshao#=======================================================================class MapElement(WebElement):    plan_menu = (By.XPATH,'//li[@data-dojo-attach-point="planTab"]/a')    import_btn = (By.XPATH, '''//button[@data-dojo-attach-point="btnImportMap"]''')    import_from = (By.XPATH, '''//div[@data-dojo-attach-point="importForm"]''')    choose_btn = (By.XPATH, '''//span[@data-dojo-attach-point="containerNode"]''')    choose_event = (By.XPATH, '''///span[@data-dojo-attach-event="ondijitclick:_onClick"]''')    file_name = (By.XPATH, '''//span[@data-dojo-attach-point="uploadFileName"]''')    input_file = (By.XPATH, '''//div[@data-dojo-attach-point="importFileUploader"]/span/input[1]''')    inport_btn_in_popup_window = (By.XPATH,'//button[@data-dojo-attach-point="btnImport"]')class aaa(WebElement):    pass#=======================================================================# FuncName:RescaleFloorSize# Desc:# # Para:# Return:# Date: 2015-05-31 17:32# Author: junma#=======================================================================class RescaleFloorSize(WebElement):    Button_Set = (By.XPATH,'//div[@data-dojo-attach-point="settings"]')    Table_Setting = (By.XPATH,'//div[@aria-label="dijit_Menu_7"]')    Button_Rescale = (By.XPATH,'//tr[@aria-label="Rescale Plan "]')    Button_Apply = (By.XPATH,'//button[@data-dojo-attach-point="btnApply"]')    Input_Width = (By.XPATH,'//input[@data-dojo-attach-point="width"]')    Input_Height = (By.XPATH,'//input[@data-dojo-attach-point="height"]')    Button_DpDwList = (By.XPATH,'//div[@class="unit"]/descendant::a[@class="chzn-single"]/div/b')    Option_Feet = (By.XPATH,'//ul/li[text()="feet"]')    Option_List = ("Device Labels ","Rescale Plan ","Show Grid ","Change Plan Units ","Global Settings ","Planning Tool ")#=======================================================================# FuncName:HeatMap# Desc:# # Para:# Return:# Date: 2015-05-31 18:03# Author: junma#=======================================================================class HeatMap(WebElement):    Button_HeatMap = (By.XPATH, '//dd[text()="View Heat Map"]')    Map_layer = (By.XPATH, '//div[@class="map-layers"]')    But_Auto_Place = (By.XPATH, '//button[@data-dojo-attach-point="btnAutoPlace"]')    But_Auto_Place_More = (By.XPATH, '//a[@data-dojo-attach-point="autoPlaceMore"]')    But_Auto_Place2 = (By.XPATH, '//button[@data-dojo-attach-point="btnAutoPlace2"]')    But_Add_Device = (By.XPATH, '//button[@data-dojo-attach-point="btnAddDevice"]')    But_Add_Device_More = (By.XPATH, '//a[@data-dojo-attach-point="addDevicesMore"]')    Tab_Multi = (By.XPATH, '//dd[text()="%s"]')  #Plan Devices    But_Sel_All_Device = (By.XPATH, '//a[@data-dojo-attach-point="selectAllDevice"]')    But_Del_Device = (By.XPATH, '//a[@data-dojo-attach-point="delDevices"]')    But_Yes = (By.XPATH, '//a[@data-dojo-attach-point="btnYes"]')    Heatmap_Type = (By.XPATH, '//div[@data-dojo-attach-point="heatToolItems"]/descendant::ul/li[text()="%s"]') # 2.4 GHz or 5 Ghz or channel type or heatmap type#=======================================================================# ClassName:GlobalSettingElm# Desc:This class element is included the element that used to set Global settings# # Para:# Return:# Date: 2015-05-21 18:17# Author: junma#=======================================================================class GlobalSettingElm(WebElement):    Input_Interval = (By.XPATH,'//[@data-dojo-attach-point="pollingInterval"]')    Modify_Save = (By.XPATH,'//a[@data-dojo-attach-point ="btnSave"]')    Modify_Cancle = (By.XPATH,'//a[@data-dojo-attach-point ="btnCancle"]')    Button_Set = (By.XPATH,'//div[@data-dojo-attach-point="settings"]')    Adj_Rssi_threshold = (By.XPATH,'//label[text()="RSSI Threshold for Location"]/parent::div/div/div/a/div/b')    Locatin_Threshold = (By.XPATH, '//label[text()="RSSI Threshold for Location"]/parent::div/div/div/div/ul[%d]')    Rssi_Range_1 = (By.XPATH,'//label[text()="RSSI range for calibration"]/parent::div/div/div[%1]/a/div/b')    vlaue_range_low = (By.XPATH,'//label[text()="RSSI range for calibration"]/parent::div/div/div[1]/div/ul/li[%d]')    Rssi_Range_2 = (By.XPATH,'//label[text()="RSSI range for calibration"]/parent::div/div/div[2]/a/div/b')    vlaue_range_high = (By.XPATH,'//label[text()="RSSI range for calibration"]/parent::div/div/div[2]/div/ul/li[%d]')    Opacity_Background = (By.XPATH,'//span[text()="Opacity of Background"]/parent::div/div[1]/a/div/b')    Background_vlaue = (By.XPATH,'//span[text()="Opacity of Background"]/parent::div/div[1]/div/ul/li[%d]')    Opacity_Coverage = (By.XPATH,'//span[text()="Opacity of Background"]/parent::div/div[2]/a/div/b')    coverage_value = (By.XPATH,'//span[text()="Opacity of Background"]/parent::div/div[2]/div/ul/li[%d]')    Opacity_Wall = (By.XPATH,'//span[text()="Opacity of Background"]/parent::div/div[3]/a/div/b')    wall_value = (By.XPATH,'//span[text()="Opacity of Background"]/parent::div/div[3]/div/ul/li[%d]')    Min_AP_ForLocation = (By.XPATH,'//span[text()="Minimum"]/parent::div/div/a/div/b')    Ap_num = (By.XPATH,'//span[text()="Minimum"]/parent::div/div/div/ul/li[%d]')    Recent_Report = (By.XPATH,'//input[@data-dojo-attach-point="recentlyReported"]')    Interval_Report = (By.XPATH,'//input[@data-dojo-attach-point="intervalReported"]')    Input_RepInt = (By.XPATH,'//input[@data-dojo-attach-point="locationWindow"]')     Select_Item_Summary = (By.XPATH,'//input[@data-dojo-attach-point="summaryFlag"]')    Select_mesh_ethernet = (By.XPATH,'//input[@data-dojo-attach-point="neighborRssiFlag"]')    Select_Calibrate_Heatmap = (By.XPATH, '//input[@data-dojo-attach-point="calibrateHeatMap"]')    Select_Heatmap_Location = (By.XPATH, '//input[@data-dojo-attach-point="useHeatMap"]')    Select_periVal = (By.XPATH, '//input[@data-dojo-attach-point="periVal"]')#=======================================================================# FuncName:LocationElm# Desc:# # Para:# Return:# Date: 2015-05-21 18:03# Author: junma#=======================================================================  ###====================================Location Operation Xpath=============================class LocationElm(WebElement):    Button_Plan = (By.XPATH, '''//li[@data-dojo-attach-point="planTab"]/a''')    Button_import_map = (By.XPATH, '''//button[@data-dojo-attach-point="importMapBtn"]''')    Button_AddLocation = (By.XPATH, '''//button[@data-dojo-attach-point="addLocationBtn"]''')    Button_Edit_map = (By.XPATH, '''//dd[@data-level="0"]/descendant::span[@title="Edit"]''')    Button_save = (By.XPATH, '''//button[@data-dojo-attach-point ="btnSaveLocation"]''')    Button_save_build = (By.XPATH,'''//button[@data-dojo-attach-point ="btnSaveBuilding"]''')    Button_Yes = (By.XPATH, '''//button[@data-dojo-attach-point="yesBtn"]''')    Button_ExportMap = (By.XPATH,'//div/a[@data-dojo-attach-point="btnExport"]')    #first will be replaced by floor or building or location name,second will be replaced by function of the button,such an more,move,delete,and export    Button_Multi_Func = (By.XPATH, '''//div[@title="%s"]/parent::dd/div/span[@title="%s"]''')    Button_expand = (By.XPATH,'''//div[@title="%s"]/parent::dd/span''') #%s should be replaced by name,such as "aerohive"    Button_Fold =(By.XPATH, '''//dd[@class="generic level%d level-close"]/span''')    Input_locationname = (By.XPATH, '''//input[@data-dojo-attach-point ="locationName"]''')    Input_buildingname = (By.XPATH,'''//input[@data-dojo-attach-point ="buildingName"]''')    Input_locatinaddress = (By.XPATH, '''//input[@data-dojo-attach-point ="locationAddress"]''')    Input_buildingaddr = (By.XPATH,'''//input[@data-dojo-attach-point ="buildingAddress"]''')    Menu_Location_expand = (By.XPATH, '''//div/a[@class="chzn-single chzn-single-with-drop"]''')    Menu_Location = (By.XPATH, '''//div[@data-dojo-attach-point="assoWithInLocation"]/descendant::div/b''')    # Menu_item = (By.XPATH,'''//div/ul/li[@id="ah_util_Chosen_%d_chzn_o_%d"]''')     #%d should be replaced when use it.(counter,order)    Menu_FindItembyName = (By.XPATH,'''//div[@data-dojo-attach-point="assoWithInLocation"]/descendant::li[text()="%s"]''')  #%s should be replaced by name of associated place    check_title = (By.XPATH, '//div[@title="%s"]')    choose_btn = (By.XPATH, '''//span[@data-dojo-attach-point="containerNode"]''')    choose_event = (By.XPATH, '''///span[@data-dojo-attach-event="ondijitclick:_onClick"]''')#=====================================End============================================================class ImportFile(WebElement):    Button_level = (By.XPATH,'//div[@title="%s"]')    Button_Choose_File = (By.XPATH,'//span[@class="dijitReset dijitInline dijitButtonNode"]')    input_file = (By.XPATH,'//div[@data-dojo-attach-point="importFileUploader"]/span/input[1]')    file_name = (By.XPATH, '''//span[@data-dojo-attach-point="uploadFileName"]''')    File_path_f = "E:\Files\JunMa\Downloads\floor6_1422305608204.xml"    Button_Import = (By.XPATH,'//button[@data-dojo-attach-point="btnImport"]')class DeviceLabel(WebElement):    B_Device_lable = (By.XPATH,'//tr[@aria-label="Device Labels ')    B_Selc = (By.XPATH,'//tr[@aria-label="%s"]')    Selection_List = ("Host Name ","Channel / Power ","Device Type ","None ")    Device_label = (By.XPATH,'//div[@class="leaf-label"]')

评论关闭