清华大佬耗费三个月吐血整理的几百G的资源,免费分享!....>>>
#!/usr/bin/python
# -*- coding: utf-8 -*-
__author__ = 'hshao'
from selenium.webdriver.common.by import By
from 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"]')