mirror of
				https://github.com/apache/cloudstack.git
				synced 2025-10-26 08:42:29 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			75 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			75 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| # Licensed to the Apache Software Foundation (ASF) under one
 | |
| # or more contributor license agreements.  See the NOTICE file
 | |
| # distributed with this work for additional information
 | |
| # regarding copyright ownership.  The ASF licenses this file
 | |
| # to you under the Apache License, Version 2.0 (the
 | |
| # "License"); you may not use this file except in compliance
 | |
| # with the License.  You may obtain a copy of the License at
 | |
| #
 | |
| #   http://www.apache.org/licenses/LICENSE-2.0
 | |
| #
 | |
| # Unless required by applicable law or agreed to in writing,
 | |
| # software distributed under the License is distributed on an
 | |
| # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
 | |
| # KIND, either express or implied.  See the License for the
 | |
| # specific language governing permissions and limitations
 | |
| # under the License.
 | |
| 
 | |
| from selenium import webdriver
 | |
| from selenium.common.exceptions import *
 | |
| from selenium.webdriver.support.ui import WebDriverWait # available since 2.4.0
 | |
| from selenium.webdriver.common.action_chains import ActionChains as action
 | |
| from common import Global_Locators
 | |
| from cspages.cspage import CloudStackPage
 | |
| 
 | |
| from common.shared import *
 | |
| 
 | |
| class DashboardPage(CloudStackPage):
 | |
| 
 | |
|     def __init__(self, browser):
 | |
|         self.browser = browser
 | |
|         self.active_item = ""
 | |
|         self.items = []
 | |
| 
 | |
|     @try_except_decor
 | |
|     def get_active_item(self):
 | |
|         self.active_item = ""
 | |
|         lis = self.browser.find_elements_by_xpath("//*[@id='navigation']/ul/li")
 | |
|         for li in lis:
 | |
|             if li.get_attribute('class').find('active') > 0:
 | |
|                 self.active_item = li.get_attribute('class')[:(li.get_attribute('class').index(' active'))]
 | |
|                 return self.active_item
 | |
| 
 | |
|     @try_except_decor
 | |
|     def get_items(self):
 | |
|         lis = self.browser.find_elements_by_xpath("//*[@id='navigation']/ul/li")
 | |
|         for li in lis:
 | |
|             item = li.get_attribute('class')[len('navigation-item '):]
 | |
|             if item.find('active') > 0:
 | |
|                 item = item[:(item.index(' active'))]
 | |
|             if item.find('first') > 0:
 | |
|                 item = item[:(item.index(' first'))]
 | |
|             if item.find('last') > 0:
 | |
|                 item = item[:(item.index(' last'))]
 | |
|             self.items.append(item.lower())
 | |
|         return self.items
 | |
| #       import pdb
 | |
| #       pdb.set_trace()
 | |
| 
 | |
|     @try_except_decor
 | |
|     def navigate_to(self, item_name):
 | |
|         if len(self.items) == 0:
 | |
|             self.get_items()
 | |
|         if item_name is None or len(item_name) == 0 or \
 | |
|            item_name.lower() not in self.items or \
 | |
|            (len(self.active_item) > 0 and self.active_item.lower().find(item_name.lower()) > 0):
 | |
|             return
 | |
| 
 | |
|         lis = self.browser.find_elements_by_xpath("//*[@id='navigation']/ul/li")
 | |
|         for li in lis:
 | |
|             if li.get_attribute('class').lower().find(item_name.lower()) > 0:
 | |
|                 li.click()
 | |
|                 time.sleep(3)
 | |
|                 return
 | |
| 
 |