save-auth.ts
1.49 KB
// 半自动登录,登录存放auth.json
import { test, expect } from '@playwright/test';
// 从环境变量获取配置
const TEST_PHONE = process.env.phone;
const TEST_USER_NAME = process.env.TEST_USER_NAME;
if (!TEST_PHONE) {
throw new Error('phone 环境变量未设置,请设置 phone 后再运行');
}
if (!TEST_USER_NAME) {
throw new Error('TEST_USER_NAME 环境变量未设置,请设置 TEST_USER_NAME 后再运行');
}
test('半自动登录(自动填手机号,手动输验证码)', async ({ page }) => {
await page.goto('/#/pages/login/index');
await page.getByText('手机号登录/注册').click();
await page.getByText('确定').click();
// --- 这里执行登录操作 ---
await page.locator('uni-input').filter({ hasText: '请输入手机号' }).getByRole('textbox').click();
await page.locator('uni-input').filter({ hasText: '请输入手机号' }).getByRole('textbox').fill(TEST_PHONE);
// 此处假设出现了验证码,你需要手动输入或处理
await page.locator('uni-button').filter({ hasText: '获取验证码' }).click();
console.log('请手动输入验证码,然后点击登录按钮...');
await page.locator('uni-button').filter({ hasText: '登录' }).click();
// --- 等待登录成功,跳转到首页 ---
await expect(page.getByText(TEST_USER_NAME)).toBeVisible({ timeout: 0 });
// 4. 保存存储状态(Cookie 和 LocalStorage)
await page.context().storageState({ path: 'auth.json' });
console.log('状态已保存到 auth.json');
});