一套能直接复用的 Playwright 提示词大全

一套能直接复用的 Playwright 提示词大全

这篇文章适合:

  • 刚开始接触 Playwright 的前端 / 测试 / 全栈开发
  • 想配合 AI / Codex / ChatGPT 快速生成自动化脚本的人
  • 手里有后台系统、管理端、ERP、HR SaaS、内部 OA,需要批量补 UI 自动化的人

很多人第一次用 Playwright,最大的问题不是"不会写 API",而是:

  1. 不知道该测什么场景
  2. 不知道怎么把需求描述清楚,让 AI 直接生成可运行脚本
  3. 生成出来的代码太虚,只给思路,不给完整代码

所以我把常见的企业后台自动化场景,整理成了一套 可直接喂给 AI 的 Playwright 提示词模板

你只要替换几个占位符,就可以快速生成脚本。


一、这套提示词适合什么项目

这套模板特别适合下面这些系统:

  • 管理后台
  • CRM / ERP / HR SaaS
  • 财务结算系统
  • 订单管理系统
  • 内部工作台 / OA / 审批系统
  • 数据报表系统
  • 列表 + 表单 + 弹窗类页面
  • 有登录态、权限、菜单、分页、查询、导入导出的系统

二、统一占位符说明

先约定一套统一变量,后面所有提示词都能复用。

复制代码
{{BASE_URL}}             网站地址
{{LOGIN_PATH}}           登录页路径
{{PAGE_PATH}}            业务页面路径
{{PAGE_NAME}}            页面名称

{{USERNAME_ENV}}         用户名环境变量名
{{PASSWORD_ENV}}         密码环境变量名

{{USERNAME_INPUT_HINT}}  用户名输入框提示词
{{PASSWORD_INPUT_HINT}}  密码输入框提示词
{{LOGIN_BUTTON_TEXT}}    登录按钮文字

{{BUTTON_TEXT}}          按钮文字
{{KEYWORD}}              查询关键字
{{SEARCH_INPUT_HINT}}    查询输入框提示词
{{SEARCH_BUTTON_TEXT}}   查询按钮文字

{{FORM_FIELD_NAME}}      表单字段名
{{SUCCESS_TEXT}}         成功提示语

{{CREATE_BUTTON_TEXT}}   新增按钮文字
{{DIALOG_TITLE}}         弹窗标题
{{SUBMIT_BUTTON_TEXT}}   提交按钮文字

{{DETAIL_TARGET_TEXT}}   详情目标文本
{{EDIT_BUTTON_TEXT}}     编辑按钮文字
{{DELETE_BUTTON_TEXT}}   删除按钮文字
{{CONFIRM_BUTTON_TEXT}}  确认按钮文字

{{UPLOAD_BUTTON_TEXT}}   上传按钮文字
{{EXPORT_BUTTON_TEXT}}   导出按钮文字
{{IMPORT_BUTTON_TEXT}}   导入按钮文字

{{MENU_TEXT}}            菜单名称
{{ROLE_NAME}}            角色名称
{{ERROR_TEXT}}           错误提示语

三、为什么要这样写提示词

很多人给 AI 的需求是这样的:

帮我写一个 Playwright 自动化测试。

这种提示词太空了,AI 只能给你"伪代码"。

真正高质量的提示词,至少要明确:

  • 用什么语言:JavaScript / TypeScript
  • 是否要求可直接运行
  • 是否保留现有项目结构
  • 是否需要中文注释
  • 是否要兼容新标签页 / 弹窗 / 抽屉
  • 是否从 .env 读取登录信息
  • 选择器优先级怎么定
  • 需要哪些断言
  • 无法访问真实网站时怎么处理

所以你后面会看到,我的模板都强调几件事:

  1. 必须直接输出完整代码
  2. 必须带中文注释
  3. 必须优先用稳定选择器
  4. 必须保留 TODO 占位
  5. 必须加基础断言
  6. 必须考虑实际后台系统常见情况

四、万能母版提示词

这是总控版,适合你先让 AI 生成一个"骨架脚本"。

提示词 1:万能母版

markdown 复制代码
你现在是一个资深 Playwright 自动化测试工程师,请帮我为网站 {{BASE_URL}} 生成一个"可直接运行"的 Playwright 测试 demo,使用 JavaScript 编写。

要求如下:
1. 如果当前目录已经有 Playwright 项目,就复用现有配置;如果没有,就补齐最小可运行项目结构。
2. 测试代码写成一个完整的 spec 文件,文件名清晰,例如 tests/{{PAGE_NAME}}.spec.js。
3. 所有关键步骤都加中文注释,方便阅读和二次修改。
4. 优先使用稳定定位方式:data-testid、getByRole、getByText、getByPlaceholder;不要优先使用容易失效的超长 CSS 路径。
5. 增加基础断言:页面标题正常、URL 正常、核心元素可见、无明显报错文案、主要内容区域渲染成功。
6. 如果页面可能新开标签页,请兼容当前页跳转和 popup 两种情况。
7. 如果网站需要登录,请使用 .env 或 process.env 读取账号密码,不要把真实密码写死在代码里。
8. 如果你无法真实访问该网站,也请先生成"可运行模板",把需要我替换的选择器和文本集中标记成 TODO。
9. 最后告诉我运行命令,例如 npm test、npm run test:headed、npx playwright show-report。
10. 不要只给思路,要直接给完整代码。

业务目标:
- 网站:{{BASE_URL}}
- 页面:{{PAGE_NAME}}
- 核心动作:打开页面、执行操作、检查页面显示是否正常
- 需要覆盖:登录、查询、表单、弹窗、结果校验

五、你已有的 5 个核心模板

下面是你现有模板,我顺手做了文章化整理。


提示词 2:登录流程模板

markdown 复制代码
请帮我为公司内部网站 {{BASE_URL}} 编写一个 Playwright 登录流程测试,使用 JavaScript,直接输出完整可运行代码。

登录信息要求:
- 登录页:{{LOGIN_PATH}}
- 用户名从 process.env.{{USERNAME_ENV}} 读取
- 密码从 process.env.{{PASSWORD_ENV}} 读取
- 用户名输入框关键词:{{USERNAME_INPUT_HINT}}
- 密码输入框关键词:{{PASSWORD_INPUT_HINT}}
- 登录按钮文字:{{LOGIN_BUTTON_TEXT}}

测试步骤要求:
1. 打开登录页并等待页面加载完成。
2. 校验登录页标题、Logo、登录表单是否正常显示。
3. 输入用户名和密码,点击登录按钮。
4. 如果页面有验证码、短信码、二次确认,请在代码里预留 TODO 注释,不要瞎编。
5. 登录成功后断言:URL 发生变化、首页/工作台/菜单栏可见、当前用户名或头像可见。
6. 额外校验页面没有"账号或密码错误""系统异常""请求失败"等明显错误提示。
7. 如果登录成功,顺便保存 storageState,方便后续复用登录态。
8. 关键代码必须加中文注释。
9. 如果实际选择器未知,请给我一个带占位符的模板版本,并把需要我替换的地方写清楚。

提示词 3:查询 / 搜索 / 结果校验模板

markdown 复制代码
请帮我为网站 {{BASE_URL}} 的 {{PAGE_NAME}} 页面编写一个 Playwright 查询测试,直接输出完整可运行代码。

页面信息:
- 页面地址:{{PAGE_PATH}}
- 查询输入框提示词或标签:{{SEARCH_INPUT_HINT}}
- 查询按钮文字:{{SEARCH_BUTTON_TEXT}}
- 查询关键字:{{KEYWORD}}

测试步骤要求:
1. 进入 {{PAGE_NAME}} 页面,检查页面标题、面包屑、查询区域是否正常显示。
2. 在搜索框中输入 {{KEYWORD}},必要时再选择下拉框、日期、状态筛选项。
3. 点击"{{SEARCH_BUTTON_TEXT}}"按钮。
4. 等待 loading 消失,再校验结果区域是否正常渲染。
5. 结果可能有两种情况:有数据时表格/列表至少有一条记录;无数据时空状态文案正常显示。两种都要兼容。
6. 校验结果中的关键列、关键文本、分页、总数、无报错提示是否正常。
7. 如有"重置"按钮,也顺便写一个重置查询条件并恢复默认状态的断言。
8. 代码里加中文注释,选择器尽量稳健。

提示词 4:表单新增 + 弹窗模板

markdown 复制代码
请帮我为网站 {{BASE_URL}} 的 {{PAGE_NAME}} 页面生成一个 Playwright 自动化脚本,场景是"点击新增按钮,打开弹窗/抽屉,填写表单并提交"。

页面信息:
- 页面地址:{{PAGE_PATH}}
- 新增按钮文字:{{CREATE_BUTTON_TEXT}}
- 弹窗标题:{{DIALOG_TITLE}}
- 需要填写的字段:{{FORM_FIELD_NAME_1}}、{{FORM_FIELD_NAME_2}}、{{FORM_FIELD_NAME_3}}
- 提交按钮文字:{{SUBMIT_BUTTON_TEXT}}
- 成功提示语:{{SUCCESS_TEXT}}

测试步骤要求:
1. 进入页面后,先校验列表区域和"{{CREATE_BUTTON_TEXT}}"按钮可见。
2. 点击新增按钮,断言弹窗或抽屉成功打开,标题为"{{DIALOG_TITLE}}"。
3. 填写表单,文本框、下拉框、日期、单选框、复选框都请按常规 Playwright 写法处理。
4. 提交前可增加必填项校验;提交后等待成功提示"{{SUCCESS_TEXT}}"出现。
5. 断言弹窗关闭或状态恢复正常。
6. 回到列表页后,校验新建的数据出现在表格/列表中。
7. 如果页面会弹出二次确认框,请一并处理并校验按钮点击后的结果。
8. 整个脚本必须带中文注释,并尽量写成我只替换字段名和按钮名就能复用的模板。

提示词 5:列表页 + 详情页 + 返回模板

markdown 复制代码
请帮我写一个 Playwright 测试,验证网站 {{BASE_URL}} 的 {{PAGE_NAME}} 页面,从列表进入详情,再返回列表的完整流程。

要求:
1. 打开 {{PAGE_PATH}} 页面并确认列表加载完成。
2. 点击第一条记录或指定文本"{{DETAIL_TARGET_TEXT}}"进入详情页。
3. 同时兼容当前页跳转和新标签页打开两种情况。
4. 在详情页校验:标题、编号、状态、正文区域、操作按钮是否显示正常。
5. 执行一个轻量交互,例如展开更多信息、打开预览弹窗、切换标签页。
6. 返回列表页后,再次确认列表仍然正常显示,没有白屏、报错、空白数据。
7. 代码直接给完整版本,包含中文注释和必要断言。

六、建议你补充的实际应用场景

你现在这 5 个模板已经覆盖了基础 CRUD 的一部分,但企业后台真实场景远不止这些。

下面这些,才是最容易在工作里遇到、也最值得补齐的。


提示词 6:编辑流程模板

适用场景:

  • 列表页点"编辑"
  • 打开弹窗 / 抽屉
  • 修改已有数据并提交
  • 回表格校验更新结果
diff 复制代码
请帮我为网站 {{BASE_URL}} 的 {{PAGE_NAME}} 页面编写一个 Playwright 编辑流程测试,使用 JavaScript,直接输出完整可运行代码。

页面信息:
- 页面地址:{{PAGE_PATH}}
- 编辑按钮文字:{{EDIT_BUTTON_TEXT}}
- 弹窗标题:编辑{{PAGE_NAME}}
- 需要修改的字段:{{FORM_FIELD_NAME_1}}、{{FORM_FIELD_NAME_2}}
- 提交按钮文字:{{SUBMIT_BUTTON_TEXT}}
- 成功提示语:{{SUCCESS_TEXT}}

测试要求:
1. 进入页面并等待列表加载完成。
2. 定位第一条可编辑记录,点击"{{EDIT_BUTTON_TEXT}}"。
3. 断言编辑弹窗或抽屉正常打开,并显示原始数据。
4. 修改指定字段并提交。
5. 提交后校验成功提示出现,弹窗关闭。
6. 返回列表后校验该条数据已更新为最新值。
7. 如果有表单校验规则,也补一个非法值校验示例。
8. 代码必须包含中文注释,未知选择器请使用 TODO 标记。

提示词 7:删除 / 二次确认模板

适用场景:

  • 删除按钮
  • 确认弹窗
  • 删除成功后列表刷新
  • 空状态 / 总数变化校验
markdown 复制代码
请帮我为网站 {{BASE_URL}} 的 {{PAGE_NAME}} 页面编写一个 Playwright 删除测试,直接输出完整可运行代码。

页面信息:
- 页面地址:{{PAGE_PATH}}
- 删除按钮文字:{{DELETE_BUTTON_TEXT}}
- 确认按钮文字:{{CONFIRM_BUTTON_TEXT}}
- 成功提示语:{{SUCCESS_TEXT}}

测试步骤要求:
1. 进入页面并等待列表渲染完成。
2. 找到一条可删除的数据,记录删除前的列表总数或目标文本。
3. 点击"{{DELETE_BUTTON_TEXT}}"按钮。
4. 断言二次确认弹窗出现,并校验提示文案合理。
5. 点击"{{CONFIRM_BUTTON_TEXT}}"后,等待删除完成。
6. 校验成功提示"{{SUCCESS_TEXT}}"出现。
7. 再次校验删除后的列表总数减少,或者目标数据不再可见。
8. 如果删除后列表为空,也要兼容空状态断言。
9. 所有关键步骤加中文注释。

提示词 8:导入 Excel / CSV 模板

适用场景:

  • 上传 Excel
  • 预览导入结果
  • 导入成功 / 导入失败
  • 错误文件下载
markdown 复制代码
请帮我为网站 {{BASE_URL}} 的 {{PAGE_NAME}} 页面生成一个 Playwright 导入测试脚本,使用 JavaScript,直接输出完整代码。

页面信息:
- 页面地址:{{PAGE_PATH}}
- 导入按钮文字:{{IMPORT_BUTTON_TEXT}}
- 上传按钮文字:{{UPLOAD_BUTTON_TEXT}}
- 成功提示语:{{SUCCESS_TEXT}}

测试要求:
1. 进入页面,校验导入按钮可见。
2. 点击"{{IMPORT_BUTTON_TEXT}}"后,断言导入弹窗打开。
3. 使用 Playwright 上传一个测试文件(如 xlsx/csv)。
4. 如果页面有导入预览、校验结果、错误明细区域,也进行断言。
5. 点击确认导入后,等待接口完成并校验成功提示。
6. 如果导入失败,也请保留失败场景模板,包括错误提示、错误文件下载入口、失败条数断言。
7. 代码中请写明测试文件的相对路径,并用中文注释说明。
8. 未知选择器用 TODO 标记。

提示词 9:导出文件模板

适用场景:

  • 点击导出
  • 监听下载事件
  • 校验文件名
  • 可结合查询条件一起验证
diff 复制代码
请帮我为网站 {{BASE_URL}} 的 {{PAGE_NAME}} 页面编写一个 Playwright 导出测试,使用 JavaScript,直接输出完整可运行代码。

页面信息:
- 页面地址:{{PAGE_PATH}}
- 导出按钮文字:{{EXPORT_BUTTON_TEXT}}
- 查询关键字:{{KEYWORD}}

测试步骤要求:
1. 进入页面,先执行一次查询,确保结果列表已加载。
2. 点击"{{EXPORT_BUTTON_TEXT}}"按钮。
3. 使用 Playwright 的下载能力监听并保存导出文件。
4. 校验下载成功、文件名合理、文件大小大于 0。
5. 如果导出会弹确认框或异步任务提示,也请兼容处理。
6. 代码要带中文注释。
7. 如果真实导出文件格式未知,请保留 TODO 占位。

提示词 10:分页 / 排序 / 筛选模板

适用场景:

  • 表格分页
  • 点击列排序
  • 多条件组合筛选
  • 重置条件恢复默认
diff 复制代码
请帮我为网站 {{BASE_URL}} 的 {{PAGE_NAME}} 页面生成一个 Playwright 测试脚本,场景包括分页、排序、筛选,直接输出完整 JavaScript 代码。

页面信息:
- 页面地址:{{PAGE_PATH}}
- 查询关键字:{{KEYWORD}}

测试要求:
1. 打开页面并等待表格渲染成功。
2. 执行一次关键字查询,校验结果区域正常显示。
3. 如果表格支持分页,点击下一页并断言页码变化、数据刷新成功。
4. 如果表格支持排序,点击某个列头进行升序/降序排序,并断言 UI 状态发生变化。
5. 如果页面支持状态、日期、下拉筛选,请加入 1~2 个筛选条件。
6. 点击重置后,断言筛选条件恢复默认值。
7. 对 loading、空状态、报错提示做基础断言。
8. 代码加中文注释,并优先使用稳健选择器。

提示词 11:权限控制模板

适用场景:

  • 不同角色看不同菜单
  • 按钮显隐
  • 无权限访问跳转 403 / 提示页
  • 行级权限 / 数据范围权限
diff 复制代码
请帮我为网站 {{BASE_URL}} 编写一个 Playwright 权限测试脚本,使用 JavaScript,直接输出完整代码。

测试背景:
- 页面:{{PAGE_NAME}}
- 页面地址:{{PAGE_PATH}}
- 菜单名称:{{MENU_TEXT}}
- 角色名称:{{ROLE_NAME}}

测试要求:
1. 使用不同账号登录(管理员账号、普通账号),账号从环境变量读取。
2. 校验不同角色下菜单"{{MENU_TEXT}}"是否可见。
3. 进入 {{PAGE_NAME}} 页面后,校验新增、编辑、删除、导出等按钮的显示差异。
4. 如果普通账号无权访问该页面,断言应跳转到 403 页面、无权限页或显示明确提示。
5. 如果存在行级权限或数据范围权限,也预留断言位置。
6. 代码必须带中文注释,账号密码不能写死。
7. 选择器未知的地方统一写 TODO。

提示词 12:批量操作模板

适用场景:

  • 批量勾选
  • 批量删除
  • 批量启用 / 禁用
  • 批量审核
diff 复制代码
请帮我为网站 {{BASE_URL}} 的 {{PAGE_NAME}} 页面生成一个 Playwright 批量操作测试脚本,使用 JavaScript,直接输出完整代码。

页面信息:
- 页面地址:{{PAGE_PATH}}
- 批量操作按钮文字:批量{{BUTTON_TEXT}}
- 成功提示语:{{SUCCESS_TEXT}}

测试要求:
1. 打开页面并等待表格渲染成功。
2. 勾选至少两条数据,断言批量操作按钮从禁用变为可用。
3. 点击批量{{BUTTON_TEXT}},处理可能存在的确认弹窗。
4. 提交后校验成功提示"{{SUCCESS_TEXT}}"出现。
5. 校验目标数据状态发生变化,或者列表刷新成功。
6. 如果未勾选数据时按钮应禁用,也请补一个断言。
7. 脚本需要中文注释。

提示词 13:文件上传 / 图片上传模板

适用场景:

  • 头像上传
  • 附件上传
  • PDF / Excel / 图片上传
  • 上传进度、预览、删除
markdown 复制代码
请帮我为网站 {{BASE_URL}} 的 {{PAGE_NAME}} 页面编写一个 Playwright 文件上传测试,使用 JavaScript,直接输出完整代码。

页面信息:
- 页面地址:{{PAGE_PATH}}
- 上传按钮文字:{{UPLOAD_BUTTON_TEXT}}
- 成功提示语:{{SUCCESS_TEXT}}

测试要求:
1. 进入页面后找到上传区域。
2. 上传一个测试文件(图片、pdf、excel 均可按模板留 TODO)。
3. 校验上传中状态、上传完成状态、文件名或预览区域可见。
4. 如果页面支持删除已上传文件,也补一个删除动作测试。
5. 如果页面有大小限制、格式限制,也补充异常场景模板。
6. 代码必须带中文注释,并给出测试文件放置目录建议。

提示词 14:异常提示 / 表单校验模板

适用场景:

  • 必填校验
  • 格式校验
  • 手机号 / 邮箱 / 身份证
  • 长度限制
diff 复制代码
请帮我为网站 {{BASE_URL}} 的 {{PAGE_NAME}} 页面生成一个 Playwright 表单异常校验脚本,使用 JavaScript,直接输出完整代码。

页面信息:
- 页面地址:{{PAGE_PATH}}
- 提交按钮文字:{{SUBMIT_BUTTON_TEXT}}
- 需要校验的字段:{{FORM_FIELD_NAME}}

测试要求:
1. 打开页面并进入新增或编辑表单。
2. 不填写必填字段直接提交,断言必填提示出现。
3. 输入非法格式数据,例如超长文本、错误手机号、错误邮箱等,断言对应校验提示。
4. 输入合法数据后,断言错误提示消失。
5. 如果页面支持实时校验和提交校验,两种都尽量覆盖。
6. 所有步骤加中文注释。
7. 未知提示语或选择器用 TODO 标记。

提示词 15:菜单导航 / 面包屑 / 路由跳转模板

适用场景:

  • 左侧菜单展开
  • 二级菜单点击
  • 路由跳转
  • 面包屑显示
diff 复制代码
请帮我为网站 {{BASE_URL}} 编写一个 Playwright 菜单导航测试脚本,使用 JavaScript,直接输出完整代码。

测试目标:
- 一级菜单:{{MENU_TEXT}}
- 页面名称:{{PAGE_NAME}}
- 页面地址:{{PAGE_PATH}}

测试要求:
1. 登录系统后,展开一级菜单并点击目标菜单。
2. 校验 URL 跳转到 {{PAGE_PATH}}。
3. 校验页面标题、面包屑、主要内容区域显示正确。
4. 如果菜单支持折叠/展开,也补一个导航状态断言。
5. 如果页面是新标签页打开,也要兼容 popup。
6. 所有关键步骤加中文注释。

提示词 16:iframe / 内嵌页面模板

适用场景:

  • 老系统 iframe
  • 外部页面嵌入
  • 微前端子应用
  • 富文本编辑器 iframe
css 复制代码
请帮我为网站 {{BASE_URL}} 的 {{PAGE_NAME}} 页面编写一个 Playwright iframe 场景测试脚本,使用 JavaScript,直接输出完整代码。

页面信息:
- 页面地址:{{PAGE_PATH}}

测试要求:
1. 打开页面后识别 iframe,并进入对应 frame。
2. 在 iframe 内校验标题、表单、按钮或表格是否渲染成功。
3. 在 iframe 内执行一次核心操作,例如输入、点击查询、点击保存。
4. 如果 iframe 中有弹窗或跳转,也尽量兼容处理。
5. 脚本必须使用 frameLocator 或稳定 frame 定位方式。
6. 关键步骤全部使用中文注释。

提示词 17:标签页切换 / 多 Tab 模板

适用场景:

  • 详情页多个 Tab
  • 基本信息 / 流程记录 / 操作日志
  • 切换后异步加载数据
diff 复制代码
请帮我为网站 {{BASE_URL}} 的 {{PAGE_NAME}} 页面编写一个 Playwright 标签页切换测试,使用 JavaScript,直接输出完整代码。

页面信息:
- 页面地址:{{PAGE_PATH}}

测试要求:
1. 打开页面并等待详情页或工作台渲染完成。
2. 依次点击 2~3 个 Tab,如"基本信息""操作记录""附件信息"。
3. 每次切换后都校验对应内容区域正确显示,且 loading 消失。
4. 校验切换过程中页面没有明显报错文案。
5. 如果 Tab 中有表格、附件、日志时间线,也做基础断言。
6. 脚本需包含中文注释。

提示词 18:弹窗 / 抽屉 / 二次确认 / 预览模板

适用场景:

  • 查看大图
  • PDF 预览
  • 预览弹窗
  • 审批确认框
diff 复制代码
请帮我为网站 {{BASE_URL}} 的 {{PAGE_NAME}} 页面生成一个 Playwright 弹窗交互测试,使用 JavaScript,直接输出完整代码。

页面信息:
- 页面地址:{{PAGE_PATH}}
- 按钮文字:{{BUTTON_TEXT}}

测试要求:
1. 进入页面并点击"{{BUTTON_TEXT}}"。
2. 校验弹窗、抽屉或预览层成功打开。
3. 校验标题、内容区域、关闭按钮、确认按钮是否可见。
4. 如果弹窗内有图片、PDF、富文本、表格等内容,也做基础断言。
5. 点击关闭或取消后,断言弹层成功消失,页面状态恢复正常。
6. 所有关键步骤加中文注释。

提示词 19:接口失败 / 重试 / 错误提示模板

适用场景:

  • 网络超时
  • 请求失败
  • 500 错误
  • 前端错误提示是否合理
markdown 复制代码
请帮我为网站 {{BASE_URL}} 的 {{PAGE_NAME}} 页面生成一个 Playwright 异常场景测试,使用 JavaScript,直接输出完整代码。

页面信息:
- 页面地址:{{PAGE_PATH}}
- 错误提示语:{{ERROR_TEXT}}

测试要求:
1. 打开页面并拦截指定接口,模拟失败响应,如 500、超时、空数据。
2. 执行查询或提交操作。
3. 校验页面显示合理的错误提示,如"{{ERROR_TEXT}}"或通用失败提示。
4. 校验页面不会白屏、卡死或出现明显未捕获异常。
5. 如果页面有"重试"按钮,也补充一次重试成功的脚本。
6. 关键步骤写中文注释。

提示词 20:下载详情页 / 新窗口 / PDF 预览模板

适用场景:

  • 点击附件
  • 新窗口打开
  • PDF 预览
  • 当前页跳转和 popup 并存
diff 复制代码
请帮我为网站 {{BASE_URL}} 的 {{PAGE_NAME}} 页面编写一个 Playwright 新窗口/预览测试,使用 JavaScript,直接输出完整代码。

页面信息:
- 页面地址:{{PAGE_PATH}}
- 触发文字:{{BUTTON_TEXT}}

测试要求:
1. 打开页面并点击"{{BUTTON_TEXT}}"。
2. 同时兼容当前页跳转和 popup 新标签页打开。
3. 校验新页面 URL 合理、标题存在、主体内容可见。
4. 如果是 PDF、图片、详情页预览,也做基础断言。
5. 返回原页面后,再次确认列表仍正常显示。
6. 关键步骤加中文注释。

提示词 21:工作流 / 审批流模板

适用场景:

  • 提交审批
  • 审批通过 / 驳回
  • 流程节点状态变化
  • 审批记录时间线
markdown 复制代码
请帮我为网站 {{BASE_URL}} 的 {{PAGE_NAME}} 页面编写一个 Playwright 审批流测试脚本,使用 JavaScript,直接输出完整代码。

页面信息:
- 页面地址:{{PAGE_PATH}}
- 提交按钮文字:提交审批
- 审批按钮文字:通过 / 驳回
- 成功提示语:{{SUCCESS_TEXT}}

测试要求:
1. 进入页面并创建或打开一条待审批数据。
2. 点击"提交审批"后,断言流程状态变为待审批。
3. 使用另一个审批账号登录,打开待审批记录并执行"通过"或"驳回"。
4. 校验状态、审批意见、审批时间线、操作记录均更新成功。
5. 如果存在流程节点图,也做基础断言。
6. 账号信息从环境变量读取,不能写死。
7. 代码必须带中文注释。

提示词 22:数据看板 / 报表模板

适用场景:

  • 图表渲染
  • 筛选维度切换
  • 数字指标卡片
  • 图表空状态
diff 复制代码
请帮我为网站 {{BASE_URL}} 的 {{PAGE_NAME}} 页面编写一个 Playwright 报表/看板测试,使用 JavaScript,直接输出完整代码。

页面信息:
- 页面地址:{{PAGE_PATH}}

测试要求:
1. 打开页面后校验核心指标卡片、图表区域、筛选区域可见。
2. 切换一个时间维度,如今日、本周、本月,校验图表重新加载。
3. 校验至少一个核心数字、一个图表容器、一个列表或排行区域正常渲染。
4. 如果无数据,也兼容空状态文案断言。
5. 校验页面无明显报错提示。
6. 所有步骤带中文注释。

提示词 23:移动端 / 响应式模板

适用场景:

  • H5
  • 手机端后台
  • 响应式布局
  • 抽屉菜单
diff 复制代码
请帮我为网站 {{BASE_URL}} 的 {{PAGE_NAME}} 页面编写一个 Playwright 移动端/响应式测试脚本,使用 JavaScript,直接输出完整代码。

页面信息:
- 页面地址:{{PAGE_PATH}}

测试要求:
1. 使用 Playwright 移动端视口打开页面。
2. 校验顶部导航、菜单抽屉、核心内容区域正确显示。
3. 执行一次查询、一次点击操作。
4. 校验页面没有横向溢出、关键按钮未被遮挡、弹窗仍可正常关闭。
5. 如果存在适配后的菜单收起逻辑,也做基础断言。
6. 脚本必须带中文注释。

七、哪些场景最值得优先写

如果你是公司里第一次推动 Playwright,不要一上来就追求"全站自动化"。

建议优先顺序:

第一阶段:先做冒烟

优先覆盖:

  • 登录
  • 首页
  • 菜单跳转
  • 关键列表页打开
  • 查询
  • 详情打开

这是最划算的。


第二阶段:再做核心业务链路

例如:

  • 新增
  • 编辑
  • 删除
  • 提交审批
  • 导入 / 导出
  • 权限控制

这时候自动化开始真正有业务价值。


第三阶段:再补异常和边界

例如:

  • 必填校验
  • 错误提示
  • 空数据
  • 网络失败
  • 多角色权限

这一步更像"质量兜底"。


八、实际写提示词时的优化建议

1)一定强调"直接输出完整代码"

不要只写:

复制代码
帮我写个 Playwright 用例

要写:

复制代码
直接输出完整可运行代码,不要只给思路

2)一定强调"未知选择器请保留 TODO"

否则 AI 很容易乱猜选择器,导致脚本看起来很完整,实际上根本跑不起来。

建议固定加一句:

复制代码
如果实际选择器未知,请给我一个带 TODO 占位符的模板版本,不要瞎编不存在的 DOM 结构。

3)一定要求"中文注释"

这样后面你自己看、同事接手、二次改造都很方便。


4)一定要求"优先稳健选择器"

推荐优先级:

  1. data-testid
  2. getByRole
  3. getByText
  4. getByPlaceholder
  5. 必要时局部 CSS

不要一上来就整这种:

css 复制代码
div > div:nth-child(2) > .xxx > .yyy

这种最容易炸。


5)登录类场景一定要求读取环境变量

比如:

arduino 复制代码
用户名从 process.env.TEST_USERNAME 读取
密码从 process.env.TEST_PASSWORD 读取

不要把账号密码直接写在提示词里。


九、建议配套让 AI 一起生成的内容

你在实际工作里,不要只让 AI 生成一个 spec 文件。

建议顺便让它补这些:

1).env.example

ini 复制代码
TEST_USERNAME=your_username
TEST_PASSWORD=your_password
ADMIN_USERNAME=admin
ADMIN_PASSWORD=123456

2)playwright.config.js

基础配置、超时、reporter、trace、screenshot。

3)tests/helpers/auth.js

统一封装登录逻辑。

4)tests/helpers/page.js

统一封装等待 loading 消失、通用 toast 校验、popup 兼容方法。

5)storageState

让后续脚本复用登录态,不要每条用例都重新登录。


十、我建议你再加一个"组合型母版"

这个比"万能母版"更适合日常工作,能让 AI 一次性按企业后台规范输出。

提示词 24:企业后台组合母版

diff 复制代码
你现在是一个资深 Playwright 自动化测试工程师,请为企业后台网站 {{BASE_URL}} 生成一个"可直接运行"的 JavaScript 测试脚本。

请严格遵守以下要求:
1. 如果项目中已有 Playwright 配置,则复用现有配置;没有则补齐最小运行结构。
2. 输出内容必须包括:
   - 一个完整 spec 文件
   - 必要时补充 .env.example
   - 如适合,可补充一个简单的登录辅助函数
3. 所有代码都必须带中文注释。
4. 优先使用稳定定位方式:data-testid、getByRole、getByText、getByPlaceholder。
5. 如真实选择器未知,不要瞎编,请集中写 TODO。
6. 登录账号密码必须从环境变量读取。
7. 需要兼容:
   - 当前页跳转
   - popup 新标签页
   - loading
   - toast 提示
   - 空数据状态
   - 二次确认弹窗
8. 增加基础断言:
   - 页面标题
   - URL
   - 主内容区域
   - 核心按钮
   - 无明显错误提示
9. 最后补充运行命令:
   - npx playwright test
   - npx playwright test --headed
   - npx playwright show-report
10. 不要只给思路,必须直接输出完整代码。

业务信息:
- 页面名称:{{PAGE_NAME}}
- 页面地址:{{PAGE_PATH}}
- 测试目标:{{TEST_GOAL}}
- 涉及动作:登录、进入页面、执行操作、校验结果
- 涉及元素:{{ELEMENTS}}

十一、一个很实用的写法:让 AI 先产"模板版",再产"实战版"

我建议你日常分两步:

第一步:先让 AI 生成模板版

特点:

  • 结构完整
  • TODO 明确
  • 可快速改

适合第一次搭架子。

第二步:再把真实页面信息喂进去

例如告诉 AI:

  • 真实 URL
  • 登录输入框 placeholder
  • 查询按钮文字
  • 表格列名
  • 成功提示语
  • 关键 DOM 截图 / HTML 片段

这样它就能从模板版升级成实战版。


十二、这套提示词在团队里的实际用法

如果你在公司里推广,可以这样落地:

用法 1:开发自己维护冒烟脚本

每个模块至少 1 条:

  • 页面可打开
  • 查询可执行
  • 详情可进入

用法 2:测试补核心流程

对重点业务补:

  • 新增
  • 编辑
  • 删除
  • 审批
  • 导入导出

用法 3:提测前跑一遍

配合 CI 做:

  • 登录
  • 首页
  • 关键菜单
  • 核心业务流

用法 4:回归时让 AI 快速补新页面脚本

新页面上线前,让 AI 先生成 70% 脚本,你再改最后 30%。

这个效率很高。


十三、结语

Playwright 真正的价值,不只是"自动点页面",而是:

  • 帮你做稳定冒烟
  • 帮你兜住核心回归
  • 帮你把人工重复点击变成可复用资产
  • 帮你把系统质量从"靠人记忆"变成"靠脚本校验"

而 AI 提示词的价值,不只是"帮你生成代码",而是把你脑子里的测试思路,变成一个可复制、可批量生产的模板体系。

相关推荐
Arya_aa3 小时前
1.卸载node.js才可以下载nvm,使用nvm更高级,可以指定下载node版本,开发javaweb项目
node.js
winfredzhang5 小时前
从后端架构到移动端体验:拆解一个优雅的 Node.js 轻量级媒体管理系统
架构·node.js·媒体
吴声子夜歌5 小时前
Node.js——npm包管理器
前端·npm·node.js
六月的可乐1 天前
AI Agent:从零构建生产级AI智能体脚手架的架构思考
人工智能·ai·架构·langchain·前端框架·node.js·a
四千岁2 天前
2026 最新版:WSL + Ubuntu 全栈开发环境,一篇搞定!
javascript·node.js
平凡之辈2 天前
四轮分析法:Nodejs Heap Snapshot 深度分析方法论
node.js
光影少年2 天前
如何开发一个CLI工具?
javascript·测试工具·前端框架·node.js
晴天162 天前
Neutralinojs 核心原理解析
javascript·electron·node.js
晴天162 天前
【跨桌面应用开发】Neutralinojs快速入门指南
前端·javascript·electron·node.js