import { test, expect } from '@playwright/test'; test('debug login', async ({ page }) => { // 1. 先访问页面获取 cookie await page.goto('http://localhost:81/'); await page.waitForLoadState('networkidle'); // 2. 调用登录 API const loginResp = await page.request.post('http://localhost:18082/healthlink-his/login', { data: { username: 'doctor1', password: '123456', tenantId: '1', code: '', uuid: '' } }); const loginData = await loginResp.json(); console.log('Login response:', JSON.stringify(loginData)); // 3. 设置 token const token = loginData.token; await page.evaluate((t) => { localStorage.setItem('Admin-Token', t); }, token); // 4. 检查 token 是否设置成功 const savedToken = await page.evaluate(() => localStorage.getItem('Admin-Token')); console.log('Saved token:', savedToken ? savedToken.substring(0, 20) + '...' : 'null'); // 5. 导航到门诊医生站 await page.goto('http://localhost:81/clinicManagement/doctorStation'); await page.waitForLoadState('networkidle'); await page.waitForTimeout(5000); // 6. 检查页面内容 const title = await page.title(); console.log('Page title:', title); console.log('Page URL:', page.url()); // 7. 获取页面 HTML 结构 const bodyHTML = await page.evaluate(() => document.body.innerHTML.substring(0, 2000)); console.log('Body HTML (first 2000 chars):', bodyHTML); // 8. 检查是否有错误 const errors = await page.evaluate(() => { const errorElements = document.querySelectorAll('.el-message--error, .error, [class*="error"]'); return Array.from(errorElements).map(e => e.textContent?.trim()).filter(Boolean); }); console.log('Errors found:', errors); // 截图 await page.screenshot({ path: '/tmp/debug-login.png' }); console.log('Screenshot saved to /tmp/debug-login.png'); });