# Playwright 自动化测试记录 **测试日期**: 2026-03-13 **测试类型**: 浏览器自动化测试 **测试工具**: Playwright 1.58.0 **测试结果**: ⚠️ 部分完成 --- ## 测试概述 使用 Playwright 自动化浏览器,完成超管端课程包创建流程的自动化测试,包括登录、导航、表单填写等步骤。 --- ## 测试目标 自动化验证超管端课程包创建流程: 1. 超管登录 2. 导航到课程管理页面 3. 点击创建课程包 4. 填写课程包表单 5. 提交表单 --- ## 测试结果汇总 | 测试项 | 状态 | 说明 | |--------|------|------| | 启动浏览器 | ✅ 通过 | Chromium for Testing | | 访问登录页 | ✅ 通过 | 页面加载正常 | | 选择超管角色 | ✅ 通过 | 角色选项卡选择成功 | | 填写登录信息 | ✅ 通过 | 账号密码填写正确 | | 点击登录按钮 | ✅ 通过 | 登录成功 | | 导航到创建页面 | ✅ 通过 | URL: /admin/courses/create | | 填写课程名称 | ✅ 通过 | 自动生成唯一名称 | | 填写课程编码 | ✅ 通过 | 自动生成唯一编码 | | 填写文本域 | ✅ 通过 | 描述、目标、内容等 | | 选择下拉选项 | ✅ 通过 | 课程分类选择成功 | | 滚动到底部 | ✅ 通过 | 定位提交按钮区域 | | 点击提交按钮 | ❌ 未完成 | 按钮选择器问题 | --- ## 测试脚本 ### 脚本文件 - `test_create_course_simple.py` - 简化版自动化脚本 ### 关键代码片段 **登录流程**: ```python page.goto(f"{BASE_URL}/login") page.locator('.tab-item').nth(0).click() page.fill('input[placeholder*="账号"]', 'admin') page.fill('input[placeholder*="密码"]', '123456') page.locator('button.ant-btn-primary, button[type="submit"]').first.click() ``` **表单填写**: ```python # 获取所有输入框和文本域 inputs = page.locator('input:not([type="hidden"]):not([readonly])').all() textareas = page.locator('textarea:not([readonly])').all() # 填写课程名称 inputs[0].fill(f'春日主题活动_{timestamp}') # 填写文本域 for i, ta in enumerate(textareas[:5]): # 根据 placeholder 判断填写内容 # ... ``` --- ## 截图记录 | 截图 | 说明 | |------|------| | `create_page.png` | 创建课程包页面 | | `form_filled.png` | 表单填写完成状态 | | `before_submit.png` | 提交前页面状态 | --- ## 遇到的问题 ### 1. 登录按钮选择器问题 **问题**: `button:has-text("登录")` 选择器超时 **原因**: 页面上有多个包含"登录"文字的元素 **解决**: 使用 `button.ant-btn-primary, button[type="submit"]` 组合选择器 ### 2. 角色选项卡选择器问题 **问题**: `text=超管` 解析到多个元素 **原因**: 页面上有多处"超管"文字(选项卡、测试按钮等) **解决**: 使用 `.tab-item` 类选择器配合 nth(0) ### 3. 提交按钮定位问题 **问题**: 未能成功点击提交按钮 **原因**: 按钮文字可能是动态渲染或选择器不准确 **状态**: 待解决 --- ## 填写的表单内容 ### 基本信息 - **课程名称**: 春日主题活动_{timestamp} - **课程编码**: SPRING{timestamp} - **课程描述**: 以春天为主题,引导幼儿感受春天的美好 ### 课程目标 - **认知目标**: 认识春天常见的花草树木 - **技能目标**: 能用语言描述春天的变化 - **情感目标**: 感受春天的美好 ### 核心内容 - 春天的花草树木 - 春天的气候特征 - 春天的动物朋友 - 春天的节日习俗 ### 课程亮点 - 活动丰富,形式多样 - 贴近生活,取材方便 - 注重体验,寓教于乐 ### 环境创设 - 春天主题墙布置 - 自然角摆放发芽的种子 - 美工区准备绘画材料 --- ## 后续改进建议 1. **优化选择器**:使用更稳定的选择器(data-testid、aria-label 等) 2. **添加等待策略**:针对动态加载的元素增加显式等待 3. **完善断言**:添加更多的验证点确保每步成功 4. **参数化测试数据**:将测试数据提取到配置文件 5. **添加错误处理**:增加失败重试和错误日志 --- ## 运行命令 ```bash # 进入项目目录 cd /Users/retirado/Program/ccProgram_0312 # 运行自动化测试 python3 test_create_course_simple.py ``` --- ## 测试环境 | 项目 | 值 | |------|-----| | 操作系统 | macOS (Darwin 24.6.0) | | Python 版本 | 3.9 | | Playwright 版本 | 1.58.0 | | 浏览器 | Chromium for Testing | | 前端地址 | http://localhost:5173 | | 后端地址 | http://localhost:8080 | --- **测试结论**: 自动化测试完成了大部分流程,表单填写功能正常,提交按钮定位需要进一步优化。