| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374 |
- const { chromium } = require('playwright');
- (async () => {
- const browser = await chromium.launch({ headless: true });
- const context = await browser.newContext();
- const page = await context.newPage();
-
- // 收集控制台日志
- const logs = [];
- page.on('console', msg => {
- logs.push(`[${msg.type()}] ${msg.text()}`);
- });
-
- // 收集网络请求
- page.on('request', request => {
- if (request.url().includes('api')) {
- console.log('Request:', request.method(), request.url());
- }
- });
-
- page.on('response', response => {
- if (response.url().includes('api')) {
- console.log('Response:', response.status(), response.url());
- }
- });
- try {
- // 1. 打开登录页
- console.log('=== 1. 打开登录页 ===');
- await page.goto('http://localhost:5173/pages/login/index', { waitUntil: 'networkidle', timeout: 30000 });
- await page.waitForTimeout(2000);
-
- // 2. 截图登录页
- await page.screenshot({ path: 'test-login-page.png' });
- console.log('登录页截图已保存: test-login-page.png');
-
- // 3. 输入手机号
- console.log('=== 2. 输入手机号 ===');
- await page.fill('input[type="number"]', '13812341234');
- await page.waitForTimeout(500);
- await page.screenshot({ path: 'test-phone-filled.png' });
-
- // 4. 点击登录按钮(开发环境验证码可为空)
- console.log('=== 3. 点击登录 ===');
- const loginBtn = await page.locator('button.login-btn');
- await loginBtn.click();
-
- // 等待登录结果
- await page.waitForTimeout(3000);
- await page.screenshot({ path: 'test-after-login.png' });
-
- // 5. 打印控制台日志
- console.log('=== 控制台日志 ===');
- logs.forEach(log => console.log(log));
-
- // 6. 获取当前 URL
- console.log('当前 URL:', page.url());
-
- // 7. 检查 localStorage
- const storage = await page.evaluate(() => {
- return {
- token: localStorage.getItem('token'),
- userInfo: localStorage.getItem('userInfo')
- };
- });
- console.log('LocalStorage:', JSON.stringify(storage));
-
- } catch (error) {
- console.error('测试失败:', error.message);
- await page.screenshot({ path: 'test-error.png' });
- }
-
- await browser.close();
- })();
|