/** * 教师端 E2E 测试 - 课程列表 */ import { test, expect } from '@playwright/test'; import { loginAsTeacher, clickSubMenu, waitForTable } from './helpers'; test.describe('教师端课程列表功能', () => { test.beforeEach(async ({ page }) => { await loginAsTeacher(page); }); test('验证课程列表页面加载', async ({ page }) => { // 导航到课程列表页面 await clickSubMenu(page, '教学管理', '课程列表'); // 等待页面加载 await page.waitForTimeout(2000); // 验证页面标题 const hasTitle = await page.getByText(/课程 | 教学课程/).count() > 0; test.info().annotations.push({ type: hasTitle ? 'success' : 'warning', description: `课程标题:${hasTitle ? '存在' : '不存在'}`, }); }); test('验证课程数据加载', async ({ page }) => { // 导航到课程列表页面 await clickSubMenu(page, '教学管理', '课程列表'); // 等待页面加载 await page.waitForTimeout(3000); // 检查是否有课程数据 const hasCourseList = await page.locator('[class*="course"], [class*="card"], table').count() > 0; const hasEmpty = await page.getByText(/暂无数据 | 暂无课程/).count() > 0; test.info().annotations.push({ type: 'info', description: `课程数据:${hasCourseList ? '存在' : hasEmpty ? '空状态' : '未知'}`, }); }); test('验证课程详情查看', async ({ page }) => { // 导航到课程列表页面 await clickSubMenu(page, '教学管理', '课程列表'); // 等待页面加载 await page.waitForTimeout(2000); // 查找第一个课程并点击查看 const firstCourse = page.locator('[class*="course-card"], [class*="course-item"], table tbody tr').first(); const hasCourse = await firstCourse.count() > 0; if (hasCourse) { // 尝试点击查看课程详情 await firstCourse.click(); await page.waitForTimeout(2000); // 验证是否进入课程详情页 const hasDetailPage = await page.locator('[class*="course-detail"], [class*="detail"]').count() > 0; test.info().annotations.push({ type: 'info', description: `课程详情页:${hasDetailPage ? '存在' : '不存在'}`, }); } else { test.info().annotations.push({ type: 'warning', description: '没有找到课程数据', }); } }); test('验证课程筛选功能', async ({ page }) => { // 导航到课程列表页面 await clickSubMenu(page, '教学管理', '课程列表'); // 等待页面加载 await page.waitForTimeout(2000); // 查找筛选器 const hasFilter = await page.locator('[class*="filter"], [class*="search"], .ant-input, .ant-select').count() > 0; test.info().annotations.push({ type: 'info', description: `筛选功能:${hasFilter ? '存在' : '不存在'}`, }); }); test('截图保存课程列表状态', async ({ page }) => { // 导航到课程列表页面 await clickSubMenu(page, '教学管理', '课程列表'); // 等待页面完全加载 await page.waitForTimeout(3000); // 截图 await page.screenshot({ path: 'test-results/teacher-courses.png' }); test.info().annotations.push({ type: 'success', description: '课程列表截图已保存', }); }); });