Update UI automation test files

This commit is contained in:
2026-05-19 18:04:34 +08:00
parent e0e22b895e
commit 6d7dba25d8
14 changed files with 1076 additions and 52 deletions

View File

@@ -0,0 +1,47 @@
from playwright.sync_api import Page
from zhyy.test_case.Resource.UI.base_page import BasePage
class LoginPage(BasePage):
"""
登录页对象。
注意:
当前用例未提供登录页侦察结果,因此以下 selector 使用 TODO 占位。
落地执行前请通过页面侦察补充真实 selector。
"""
USERNAME_INPUT = "TODO_LOGIN_USERNAME_INPUT_SELECTOR"
PASSWORD_INPUT = "TODO_LOGIN_PASSWORD_INPUT_SELECTOR"
LOGIN_BUTTON = "TODO_LOGIN_BUTTON_SELECTOR"
def __init__(self, page: Page):
super().__init__(page)
def is_login_page(self) -> bool:
"""
判断当前是否处于登录页。
由于缺少真实登录页 selector这里通过 TODO selector 判断。
若系统已通过 SSO 或已有登录态直接进入业务页,可返回 False。
"""
if "TODO" in self.USERNAME_INPUT:
# 未补充登录页定位时,不主动执行登录,避免误判。
return False
try:
return self.page.locator(self.USERNAME_INPUT).first.is_visible(timeout=3_000)
except Exception:
return False
def login_if_needed(self, username: str, password: str):
"""
如当前页面需要登录,则执行登录。
"""
if not self.is_login_page():
return
self.fill(self.USERNAME_INPUT, username)
self.fill(self.PASSWORD_INPUT, password)
self.click(self.LOGIN_BUTTON)
self.wait_for_network_idle()