| | |
| | | from base.base_page import BasePage |
| | | from selenium.webdriver.common.by import By |
| | | from elements.home_elements import HomeElements |
| | | import time |
| | | |
| | | |
| | |
| | | """ |
| | | 主页面侧边栏菜单与tab栏操作页面 |
| | | """ |
| | | |
| | | es = HomeElements |
| | | |
| | | def __init__(self, driver): |
| | | super().__init__(driver) |
| | | self.driver = driver |
| | | # 切换到最顶层的文档 |
| | | driver.switch_to.default_content() |
| | | |
| | | def logout(self): |
| | | # 点击第三个用户菜单 |
| | | self.click(self.es.user_menu_3) |
| | | # 点击登出 |
| | | self.click(self.es.logout_btn) |
| | | |
| | | def menu_select(self, menu_text, is_first=True): |
| | | """ |
| | |
| | | if is_first: |
| | | # 菜单元素定位 |
| | | menu_loc = (By.XPATH, "//ul[@id='side-menu']//span[text()='" + menu + "']") |
| | | # 获取菜单元素 |
| | | menu_element = self.get_element(menu_loc) |
| | | # 点击菜单 |
| | | menu_element.click() |
| | | time.sleep(1) |
| | | # 菜单下ul定位 |
| | | menu_ul_loc = (By.XPATH, "//ul[@id='side-menu']//span[text()='" + menu + "']/../../ul") |
| | | # 获取到ul元素 |
| | | ul = self.get_ele(menu_ul_loc) |
| | | # 获取ul的class属性 |
| | | ul_class = ul.get_attribute("class") |
| | | # 判断class是否包含in字符串 |
| | | if "in" not in ul_class: |
| | | # 不包含则为未打开状态,可以点击 |
| | | self.click(menu_loc, timeout=10) |
| | | else: |
| | | # 菜单元素定位 |
| | | menu_loc = (By.XPATH, "//ul[@id='side-menu']//a[text()='" + menu + "']") |
| | | # 获取菜单元素 |
| | | menu_element = self.get_element(menu_loc) |
| | | # 点击菜单 |
| | | menu_element.click() |
| | | time.sleep(1) |
| | | # 判断menu_text是否还包含/ |
| | | if "/" in menu_text: |
| | | # 包含则表示还有下级菜单,判断下级菜单是否为展开状态 |
| | | # 菜单下ul定位 |
| | | menu_ul_loc = (By.XPATH, "//ul[@id='side-menu']//a[text()='" + menu + "']/../ul") |
| | | # 获取到ul元素 |
| | | ul = self.get_ele(menu_ul_loc) |
| | | # 获取ul的class属性 |
| | | ul_class = ul.get_attribute("class") |
| | | # 判断class是否包含in字符串 |
| | | if "in" not in ul_class: |
| | | # 不包含则为未打开状态,可以点击 |
| | | self.click(menu_loc, timeout=10) |
| | | else: |
| | | self.click(menu_loc, timeout=10) |
| | | |
| | | if "/" in menu_text: |
| | | # 获取/第一次出现的位置 |
| | |
| | | menu_text = menu_text[index + 1: len(menu_text)] |
| | | # 递归调用 |
| | | self.menu_select(menu_text, False) |
| | | |
| | | |
| | | |
| | | def close_tab(self, tab_name): |
| | | """关闭页面tab""" |
| | | # 获取所有tab |
| | | tabs = self.get_eles(self.es.nav_tabs) |
| | | for tab in tabs: |
| | | if tab.text == tab_name: |
| | | # 点击关闭图标 |
| | | tab.find_element(By.XPATH, "i").click() |