# 测试套件修复计划 > **For Claude:** REQUIRED SUB-SKILL: Use superpowers:executing-plans to implement this plan task-by-task. **目标:** 修复表单测试中的元素定位、CSS选择器和Toast组件处理问题,使所有9个失败的表单测试通过。 **架构:** 通过在系统代码中添加data-testid属性、修正测试代码的CSS选择器、更新Toast组件处理逻辑,实现测试与实际UI的同步。 **技术栈:** Playwright测试框架、React组件、TypeScript、CSS选择器 --- ## 问题分析 当前9个表单测试失败的根本原因: 1. **元素定位器不匹配** - 测试使用了不存在的`data-testid`属性 2. **CSS选择器转义错误** - 错误消息选择器使用了双转义 3. **Toast组件处理不当** - 测试没有正确处理动态Toast显示 4. **缺少等待机制** - 没有等待异步UI更新完成 --- ### Task 1: 在系统代码中添加data-testid属性 **目标:** 为表单元素添加data-testid属性,使测试能够正确定位元素。 **文件:** - 修改: `/Users/zhangxiang/Codes/Gitee/home-page/novalon-website/src/components/sections/contact-section.tsx` **Step 1: 为姓名输入框添加data-testid** ```tsx handleChange('name', e.target.value)} onBlur={(e) => handleBlur('name', e.target.value)} error={errors.name} /> ``` **Step 2: 为电话输入框添加data-testid** ```tsx handleChange('phone', e.target.value)} onBlur={(e) => handleBlur('phone', e.target.value)} error={errors.phone} /> ``` **Step 3: 为邮箱输入框添加data-testid** ```tsx handleChange('email', e.target.value)} onBlur={(e) => handleBlur('email', e.target.value)} error={errors.email} /> ``` **Step 4: 为留言输入框添加data-testid** ```tsx