一套能直接复用的 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 提示词的价值,不只是"帮你生成代码",而是把你脑子里的测试思路,变成一个可复制、可批量生产的模板体系。

相关推荐
网络点点滴18 小时前
简述Node.js运行时核心架构
架构·node.js
小粉粉hhh19 小时前
Node.js(三)——模块化
node.js
晓杰'20 小时前
从0到1实现 Balatro 游戏后端(1):项目规划与牌型判断实现
后端·websocket·typescript·node.js·游戏开发·项目实战·nestjs
@PHARAOH20 小时前
WHAT - npm和corepack
前端·npm·node.js
MPGWJPMTJT20 小时前
从 Volta 迁移到 mise:Windows 下 Node 版本管理切换记录
前端·node.js
zhangfeng113320 小时前
Remotion 渲染视频脚本 ,自动化编辑视频 Node.js 层面是“单线程 JS”,但在实际渲染时是“高度并行”的。
node.js·自动化·音视频
羽师21 小时前
Node.js和npx关系
node.js
灵魂学者21 小时前
使用 Electron 打包项目构建 .EXE 桌面应用程序(简)
electron·node.js·vue·build·桌面应用程序
右耳朵猫AI21 小时前
Node.js技术周刊 2026年第14周
node.js
gogoing1 天前
Node.js 模块查找策略(require 完整流程)
javascript·node.js