Files
Yb-QaAutomationHub/tests/web/pages/components/navbar.py
T
xst aade9e39d0 feat: 基于 UI 自动化最佳实践的测试框架骨架搭建
- tests/config: 环境配置 (.yaml) + 配置加载器
- tests/utils: 日志工具 + 测试数据生成器
- tests/web: Playwright conftest + Page Object 基类 + 登录页 + 导航栏组件 + 登录用例(6条)
- tests/app: Appium conftest + Page Object 基类 + 司机端首页 + 登录用例(3条)
- pytest.ini: markers(p0/p1/p2/smoke/web/app) + 运行配置
- 所有用例按最佳实践采用 Page Object 模式 + data-testid 优先定位 + 失败自动截图
2026-07-15 10:24:22 +08:00

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.getByText("退出登录")
def go_to(self, menu_name: str) -> None:
"""点击侧边栏菜单项展开/跳转。
Args:
menu_name: 菜单名称文本(如 "运输管理"、"基础信息"
"""
menu_item = self.page.getByText(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.getByText(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()