fix: Playwright API camelCase → snake_case (Python 版)
- getByPlaceholder → get_by_placeholder - getByRole → get_by_role - getByText → get_by_text - getByTestId → get_by_test_id
This commit is contained in:
@@ -138,9 +138,9 @@ def ensure_login(web_config, page, config):
|
||||
|
||||
# ── skip_login: false,执行 UI 登录(可能有验证码,会失败) ──
|
||||
page.goto(f"{base_url}/login")
|
||||
page.getByPlaceholder("请输入用户名").fill(account["phone"])
|
||||
page.getByPlaceholder("请输入密码").fill(account["password"])
|
||||
page.getByRole("button", name="登录").click()
|
||||
page.get_by_placeholder("请输入用户名").fill(account["phone"])
|
||||
page.get_by_placeholder("请输入密码").fill(account["password"])
|
||||
page.get_by_role("button", name="登录").click()
|
||||
|
||||
# 如果有图形验证码,这里会超时
|
||||
try:
|
||||
|
||||
@@ -6,8 +6,8 @@ Usage:
|
||||
class LoginPage(BasePage):
|
||||
def __init__(self, page):
|
||||
super().__init__(page)
|
||||
self.phone_input = page.getByPlaceholder("请输入用户名")
|
||||
self.login_btn = page.getByRole("button", name="登录")
|
||||
self.phone_input = page.get_by_placeholder("请输入用户名")
|
||||
self.login_btn = page.get_by_role("button", name="登录")
|
||||
"""
|
||||
|
||||
from datetime import datetime
|
||||
@@ -38,7 +38,7 @@ class BasePage:
|
||||
|
||||
def wait_for_text(self, text: str, timeout_ms: Optional[int] = None) -> None:
|
||||
"""等待页面上出现指定文本。"""
|
||||
expect(self.page.getByText(text)).to_be_visible(timeout=timeout_ms or self.timeout)
|
||||
expect(self.page.get_by_text(text)).to_be_visible(timeout=timeout_ms or self.timeout)
|
||||
|
||||
# ── 通用操作 ──
|
||||
|
||||
|
||||
@@ -21,7 +21,7 @@ class NavBar(BasePage):
|
||||
super().__init__(page)
|
||||
# ⚠️ 以下定位器需要根据实际 DOM 调整
|
||||
self.sidebar = page.locator(".ant-layout-sider")
|
||||
self.logout_btn = page.getByText("退出登录")
|
||||
self.logout_btn = page.get_by_text("退出登录")
|
||||
|
||||
def go_to(self, menu_name: str) -> None:
|
||||
"""点击侧边栏菜单项展开/跳转。
|
||||
@@ -29,7 +29,7 @@ class NavBar(BasePage):
|
||||
Args:
|
||||
menu_name: 菜单名称文本(如 "运输管理"、"基础信息")
|
||||
"""
|
||||
menu_item = self.page.getByText(menu_name).first
|
||||
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:
|
||||
@@ -40,7 +40,7 @@ class NavBar(BasePage):
|
||||
sub_menu: 子菜单文本(如 "运单管理")
|
||||
"""
|
||||
self.go_to(parent_menu)
|
||||
sub_item = self.page.getByText(sub_menu).first
|
||||
sub_item = self.page.get_by_text(sub_menu).first
|
||||
self.click_when_ready(sub_item)
|
||||
|
||||
def logout(self) -> None:
|
||||
|
||||
@@ -18,9 +18,9 @@ class LoginPage(BasePage):
|
||||
def __init__(self, page: Page):
|
||||
super().__init__(page)
|
||||
# ── 定位器声明 ──
|
||||
self.username_input = page.getByPlaceholder("请输入用户名")
|
||||
self.password_input = page.getByPlaceholder("请输入密码")
|
||||
self.login_btn = page.getByRole("button", name="登录")
|
||||
self.username_input = page.get_by_placeholder("请输入用户名")
|
||||
self.password_input = page.get_by_placeholder("请输入密码")
|
||||
self.login_btn = page.get_by_role("button", name="登录")
|
||||
self.error_tip = page.locator(".ant-form-item-explain-error")
|
||||
|
||||
def login(self, phone: str, password: str, expect_success: bool = True) -> None:
|
||||
|
||||
@@ -90,8 +90,8 @@ def main():
|
||||
page.goto(login_url)
|
||||
|
||||
# ── 填入账号密码 ──
|
||||
page.getByPlaceholder("请输入用户名").fill(account["phone"])
|
||||
page.getByPlaceholder("请输入密码").fill(account["password"])
|
||||
page.get_by_placeholder("请输入用户名").fill(account["phone"])
|
||||
page.get_by_placeholder("请输入密码").fill(account["password"])
|
||||
print(f"👤 已填入账号: {account['phone']}(角色: {args.role})")
|
||||
print("📝 请在浏览器中手动完成验证码并点击登录...")
|
||||
print(" (登录成功后脚本会自动检测并保存)\n")
|
||||
|
||||
@@ -64,15 +64,15 @@ class TestLoginPageDirect:
|
||||
"""验证登录页可直接访问并正常渲染。"""
|
||||
page.goto(f"{web_config['base_url']}/login")
|
||||
# 登录页应存在用户名输入框
|
||||
assert page.getByPlaceholder("请输入用户名").is_visible()
|
||||
assert page.get_by_placeholder("请输入用户名").is_visible()
|
||||
|
||||
@pytest.mark.p1
|
||||
def test_login_page_elements(self, page: Page, web_config):
|
||||
"""验证登录页所有关键元素存在。"""
|
||||
page.goto(f"{web_config['base_url']}/login")
|
||||
assert page.getByPlaceholder("请输入用户名").is_visible()
|
||||
assert page.getByPlaceholder("请输入密码").is_visible()
|
||||
assert page.getByRole("button", name="登录").is_visible()
|
||||
assert page.get_by_placeholder("请输入用户名").is_visible()
|
||||
assert page.get_by_placeholder("请输入密码").is_visible()
|
||||
assert page.get_by_role("button", name="登录").is_visible()
|
||||
|
||||
@pytest.mark.p1
|
||||
def test_double_login_session_redirect(self, page: Page, web_config, ensure_login):
|
||||
|
||||
Reference in New Issue
Block a user