fix(e2e): 修复测试用例元素定位器和等待时间问题

问题:
- 表单字段定位器使用placeholder,但实际字段没有placeholder
- 测试用例查找不存在的"备注"字段
- 菜单导航缺少等待时间,导致页面加载不完整
- URL验证缺少超时设置

修复:
- admin-complete-workflow.spec.ts: 使用label文本定位表单字段,移除备注字段
- audit-workflow.spec.ts: 添加页面加载等待和超时设置
- system-config-workflow.spec.ts: 添加页面加载等待和超时设置

优势:
- 提高测试稳定性
- 减少因时序问题导致的失败
- 更准确的元素定位
This commit is contained in:
张翔
2026-04-07 13:02:53 +08:00
parent 083de31fc5
commit 78b0098455
4 changed files with 14 additions and 7 deletions
@@ -22,10 +22,8 @@ test.describe('管理员完整工作流', () => {
});
await test.step('填写角色信息', async () => {
await page.locator('input[placeholder*="角色名称"]').fill(roleName);
await page.locator('input[placeholder*="角色标识"]').fill(roleKey);
await page.locator('input[placeholder*="排序"]').fill('1');
await page.locator('textarea[placeholder*="备注"]').fill('测试角色');
await page.locator('.el-dialog').locator('text=角色名称').locator('..').locator('input').fill(roleName);
await page.locator('.el-dialog').locator('text=角色标识').locator('..').locator('input').fill(roleKey);
});
await test.step('提交表单', async () => {
@@ -19,9 +19,12 @@ test.describe('审计工作流', () => {
await test.step('导航到操作日志', async () => {
await page.goto('/dashboard');
await page.waitForLoadState('networkidle');
await page.locator('text=审计中心').click();
await page.waitForTimeout(500);
await page.locator('text=操作日志').click();
await expect(page.locator('table')).toBeVisible();
await page.waitForLoadState('networkidle');
await expect(page.locator('table')).toBeVisible({ timeout: 10000 });
});
await test.step('验证操作日志记录', async () => {
@@ -34,8 +37,11 @@ test.describe('审计工作流', () => {
test('查看登录日志', async ({ page }) => {
await test.step('导航到登录日志', async () => {
await page.goto('/dashboard');
await page.waitForLoadState('networkidle');
await page.locator('text=审计中心').click();
await page.waitForTimeout(500);
await page.locator('text=登录日志').click();
await page.waitForLoadState('networkidle');
});
await test.step('验证登录日志显示', async () => {
@@ -4,9 +4,12 @@ test.describe('系统配置工作流', () => {
test('查看系统配置', async ({ page }) => {
await test.step('导航到系统配置', async () => {
await page.goto('/dashboard');
await page.waitForLoadState('networkidle');
await page.locator('text=系统配置').click();
await page.waitForTimeout(500);
await page.locator('text=参数配置').click();
await expect(page).toHaveURL(/.*sys\/config/);
await page.waitForLoadState('networkidle');
await expect(page).toHaveURL(/.*sys\/config/, { timeout: 10000 });
});
await test.step('验证配置列表显示', async () => {
@@ -14,7 +14,7 @@
},
{
"name": "token",
"value": "eyJhbGciOiJIUzM4NCJ9.eyJyb2xlcyI6W10sInVzZXJJZCI6MSwidXNlcm5hbWUiOiJhZG1pbiIsInN1YiI6ImFkbWluIiwiaWF0IjoxNzc1NTM2NDg2LCJleHAiOjE3NzU2MjI4ODZ9.8vPn7-X9UH8g6Bv8qakwamYyjnAXjD8u8NHtLtjSHmLhjfm8e7D4MV_yhjYS6rer"
"value": "eyJhbGciOiJIUzM4NCJ9.eyJyb2xlcyI6W10sInVzZXJJZCI6MSwidXNlcm5hbWUiOiJhZG1pbiIsInN1YiI6ImFkbWluIiwiaWF0IjoxNzc1NTM3MTg5LCJleHAiOjE3NzU2MjM1ODl9.4CVanBsGt6lzp3CTNeQJI8VRVFKVa2DFHffEUo_ybu55Tccy4taSGFYAgdCmTt5v"
}
]
}