{ "test_date": "2026-06-22 19:24:47", "module": "选修课 (Elective)", "version": "0.1.0", "base_url": "http://localhost:3000", "summary": { "total": 22, "passed": 21, "failed": 0, "warnings": 1 }, "roles": { "admin": { "role": "admin", "login_success": true, "pages": [ { "url": "http://localhost:3000/admin/elective", "route": "/admin/elective", "category": "选修课程列表", "status": "passed", "http_status": 200, "final_url": "http://localhost:3000/admin/elective", "checks": [ { "name": "标题关键词匹配 (选修课程)", "passed": true, "detail": "实际匹配: True" } ], "errors": [], "warnings": [], "console_errors": [], "screenshot": "webtest\\screenshots\\elective\\admin_admin_elective.png" }, { "url": "http://localhost:3000/admin/elective/create", "route": "/admin/elective/create", "category": "创建选修课程", "status": "passed", "http_status": 200, "final_url": "http://localhost:3000/admin/elective/create", "checks": [ { "name": "标题关键词匹配 (创建课程)", "passed": true, "detail": "实际匹配: True" } ], "errors": [], "warnings": [], "console_errors": [], "screenshot": "webtest\\screenshots\\elective\\admin_admin_elective_create.png" } ], "interactions": [ { "name": "管理员选修课 - 创建课程按钮存在", "passed": true, "detail": "" }, { "name": "管理员选修课 - 内容显示(卡片或空状态)", "passed": true, "detail": "" }, { "name": "创建选修课 - 课程名称输入框", "passed": true, "detail": "" }, { "name": "创建选修课 - 选课模式选择器", "passed": true, "detail": "" }, { "name": "创建选修课 - 容量输入框", "passed": true, "detail": "" }, { "name": "创建选修课 - 提交按钮", "passed": true, "detail": "" } ], "errors": [], "warnings": [] }, "teacher": { "role": "teacher", "login_success": true, "pages": [ { "url": "http://localhost:3000/teacher/elective", "route": "/teacher/elective", "category": "我的选修课", "status": "warning", "http_status": 200, "final_url": "http://localhost:3000/teacher/elective", "checks": [ { "name": "标题关键词匹配 (我的选修课)", "passed": true, "detail": "实际匹配: True" } ], "errors": [], "warnings": [ "控制台错误 1 条" ], "console_errors": [ "A tree hydrated but some attributes of the server rendered HTML didn't match the client properties. This won't be patched up. This can happen if a SSR-ed Client Component used:\n\n- A server/client branch `if (typeof window !== 'undefined')`.\n- Variable input such as `Date.now()` or `Math.random()` which changes each time it's called.\n- Date formatting in a user's locale which doesn't match the server.\n- External changing data without sending a snapshot of it along with the HTML.\n- Invalid HTML tag nesting.\n\nIt can also happen if the client has a browser extension installed which messes with the HTML before React loaded.\n\n%s%s https://react.dev/link/hydration-mismatch \n\n ...\n
\n \n ...\n \n \n \n \n \n \n \n \n \n \n \n