/** * 登录辅助函数:访问登录页 → 填手机号 → 点登录(开发环境免密) */ import { Page, expect } from '@playwright/test'; const FRONTEND_URL = process.env.FRONTEND_URL || 'http://127.0.0.1:5173'; export async function loginAsTestUser(page: Page, phone: string = '13800000001'): Promise<{ ok: boolean; finalUrl: string }> { // 访问登录页 await page.goto(`${FRONTEND_URL}/#/pages/login/index`, { waitUntil: 'networkidle', timeout: 30000 }); await page.waitForTimeout(2000); // 填手机号 const phoneInput = page.locator('input').first(); await expect(phoneInput).toBeVisible({ timeout: 10000 }); await phoneInput.fill(phone); // 点登录按钮(开发环境免密) const loginBtn = page.locator('.login-btn').first(); await expect(loginBtn).toBeVisible({ timeout: 10000 }); await loginBtn.click(); // 等登录完成(弹 toast 或 URL 变化) await page.waitForTimeout(3000); const finalUrl = page.url(); const ok = !finalUrl.includes('/login/'); return { ok, finalUrl }; }