Files
QaAutomationHub/tests/web/pages/components/navbar.py
T

54 lines
1.6 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
"""导航栏公共组件。
跨页面复用的顶部/侧边导航操作。
Usage:
from tests.web.pages.components.navbar import NavBar
navbar = NavBar(page)
navbar.go_to("运输管理")
"""
from playwright.sync_api import Page, expect
from tests.web.pages.base_page import BasePage
class NavBar(BasePage):
"""侧边导航栏组件。"""
def __init__(self, page: Page):
super().__init__(page)
# ⚠️ 以下定位器需要根据实际 DOM 调整
self.sidebar = page.locator(".ant-layout-sider")
self.logout_btn = page.get_by_text("退出登录")
def go_to(self, menu_name: str) -> None:
"""点击侧边栏菜单项展开/跳转。
Args:
menu_name: 菜单名称文本(如 "运输管理"、"基础信息"
"""
menu_item = self.page.get_by_text(menu_name).first
self.click_when_ready(menu_item)
def go_to_submenu(self, parent_menu: str, sub_menu: str) -> None:
"""点击父级菜单后,点击子菜单项。
Args:
parent_menu: 父级菜单文本(如 "整车运输"
sub_menu: 子菜单文本(如 "运单管理"
"""
self.go_to(parent_menu)
sub_item = self.page.get_by_text(sub_menu).first
self.click_when_ready(sub_item)
def logout(self) -> None:
"""退出登录。"""
self.click_when_ready(self.logout_btn)
expect(self.page).to_have_url("#/login", timeout=10_000)
def is_expanded(self) -> bool:
"""检查侧边栏是否展开。"""
return self.sidebar.is_visible()