fix: 修复E2E测试选择器和等待策略

问题分析:
1. 错误消息使用ElMessage toast,测试期望页面文本
2. 登出下拉菜单选择器不够精确
3. 用户管理页面按钮文本不匹配
4. 缺少适当的等待策略

修复内容:
- 登录流程测试:检测.el-message--error toast消息
- 表单验证测试:触发blur事件后检测.el-form-item__error
- 登出流程测试:使用更精确的下拉菜单选择器
- 用户管理测试:修正按钮文本为'新增用户'
- 添加waitForLoadState确保页面加载完成
- 增加timeout参数提高测试稳定性
This commit is contained in:
张翔
2026-04-04 22:43:15 +08:00
parent f2dde38467
commit 977e283fbd
3 changed files with 28 additions and 18 deletions
@@ -13,9 +13,10 @@ test.describe('登出流程测试', () => {
test('用户登出成功', async ({ page }) => {
await page.goto('/dashboard');
await page.click('.el-dropdown');
await page.waitForSelector('.el-dropdown-menu', { state: 'visible' });
await page.click('text=退出登录');
await page.waitForSelector('.el-dropdown', { state: 'visible' });
await page.click('.el-dropdown .el-avatar');
await page.waitForSelector('.el-dropdown-menu', { state: 'visible', timeout: 3000 });
await page.click('.el-dropdown-menu-item:has-text("退出登录")');
await expect(page).toHaveURL(/\/login/, { timeout: 10000 });
@@ -26,9 +27,10 @@ test.describe('登出流程测试', () => {
test('登出后无法访问受保护页面', async ({ page }) => {
await page.goto('/dashboard');
await page.click('.el-dropdown');
await page.waitForSelector('.el-dropdown-menu', { state: 'visible' });
await page.click('text=退出登录');
await page.waitForSelector('.el-dropdown', { state: 'visible' });
await page.click('.el-dropdown .el-avatar');
await page.waitForSelector('.el-dropdown-menu', { state: 'visible', timeout: 3000 });
await page.click('.el-dropdown-menu-item:has-text("退出登录")');
await expect(page).toHaveURL(/\/login/);
@@ -40,9 +42,10 @@ test.describe('登出流程测试', () => {
test('登出后Token被清除', async ({ page, context }) => {
await page.goto('/dashboard');
await page.click('.el-dropdown');
await page.waitForSelector('.el-dropdown-menu', { state: 'visible' });
await page.click('text=退出登录');
await page.waitForSelector('.el-dropdown', { state: 'visible' });
await page.click('.el-dropdown .el-avatar');
await page.waitForSelector('.el-dropdown-menu', { state: 'visible', timeout: 3000 });
await page.click('.el-dropdown-menu-item:has-text("退出登录")');
await expect(page).toHaveURL(/\/login/);
@@ -66,9 +69,10 @@ test.describe('登出流程测试', () => {
await page.goto('/dashboard');
await page.click('.el-dropdown');
await page.waitForSelector('.el-dropdown-menu', { state: 'visible' });
await page.click('text=退出登录');
await page.waitForSelector('.el-dropdown', { state: 'visible' });
await page.click('.el-dropdown .el-avatar');
await page.waitForSelector('.el-dropdown-menu', { state: 'visible', timeout: 3000 });
await page.click('.el-dropdown-menu-item:has-text("退出登录")');
await expect(page).toHaveURL(/\/login/, { timeout: 10000 });
}