【Playwright自动化】录制生成脚本

一、Playwright制生成脚本

命令行录制生成脚本

Playwright 提供了内置的脚本录制工具,可以自动生成测试脚本,简化编写自动化测试的过程。以下是具体操作方法:

启动录制模式

运行以下命令启动浏览器并开启录制功能:

复制代码
playwright codegen  https://www.baidu.com

启 动 后, 电脑 上出 现 2 个窗口,左 边 是 浏览 器打开网站可以操作,右 边 是 inspector 可以生成 对应
的脚本

录制操作流程

  1. 打开的浏览器中执行所有需要录制的操作(点击、输入等)。
  2. 操作会实时转换为脚本并显示在侧边栏。
  3. 点击复制按钮将生成的脚本保存到文件。

录制功能的高级用法

  • 多语言支持 :通过 --target 参数指定生成语言(如 npx playwright codegen --target=python
  • 设备模拟 :添加 --device="iPhone 11" 模拟移动端操作
  • 保存录制会话 :使用 --output 参数指定脚本保存路径
  • 录制特定站点 :直接指定URL(如 npx playwright codegen https://example.com

保留经过身份验证的状态
运行 codegen 以在会 话结 束 时 --save-storage 保存 cookie 和 localStorage 。 这对 于 单 独 记录 身份
验证 步 骤 并在稍后的 测试 中重用它很有用。
执 行身份 验证 并关 闭浏览 器后, auth.json 将包含存 储 状 态 。

复制代码
playwright codegen --save-storage=auth.json

运行 --load-storage 以消耗先前加 载 的存 储 。 这样 ,所有的 cookie 和 localStorage 都将被恢复,使
大多数网 络应 用程序 进 入身份 验证 状 态 。

复制代码
playwright open --load-storage=auth.json url
playwright codegen --load-storage=auth.json url

注:可通过插件形式录制

谷歌插件直接搜(需要进行科学上网)

二、录制实战

登录deepseek,获取token,实现下次免登录:

1.访问deepseek 网站:https://www.deepseek.com/en/vl

2.点击开始对话

3.选择密码登录,输入账号密码,然后点击登录

理清楚步骤之后,我们在控制台输入命令,开始录制脚本:

复制代码
playwright codegen --save-storage=auth.json

收获1:我们成功录制了登录的脚本

python 复制代码
import time

from playwright.sync_api import Page, expect


def test_example(page: Page) -> None:
    page.goto("https://www.deepseek.com/en/vl")
    with page.expect_popup() as page1_info:
        page.get_by_role("link", name="开始对话 与 DeepSeek-V3.2 免费对话 体验全新旗舰模型").click()
    page1 = page1_info.value
    page1.get_by_text("密码登录").click()
    page1.get_by_placeholder("请输入手机号/邮箱地址").click()
    page1.get_by_placeholder("请输入手机号/邮箱地址").fill("你的账号")
    page1.get_by_placeholder("请输入密码").click()
    page1.get_by_placeholder("请输入密码").fill("你的密码")
    page1.get_by_role("button", name="登录").click()
    time.sleep(20)

收获2:获取到了token,下次可以携带token实现免登录

带token,实现免登录:

python 复制代码
 playwright open --load-storage=auth.json https://www.deepseek.com/en/vl

不带token:

python 复制代码
playwright open  https://www.deepseek.com/en/vl     
相关推荐
java_logo1 小时前
MySQL Server Docker 容器化部署指南
linux·运维·数据库·docker·容器
I***t7161 小时前
自己编译RustDesk,并将自建ID服务器和key信息写入客户端
运维·服务器
陈奕昆1 小时前
n8n实战营Day3:电商订单全流程自动化·需求分析与流程拆解
大数据·开发语言·人工智能·自动化·需求分析·n8n
BJ_Bonree1 小时前
数智先锋 | 核心应用响应时常<1s、多终端崩溃率低至 0.1%!Bonree ONE 赋能蓝月亮应用性能与终端体验双重升级!
运维
张鱼小丸子1 小时前
电脑刷机教程:轻松重装系统指南
运维
k***1951 小时前
Nginx反向代理出现502 Bad Gateway问题的解决方案
运维·nginx·gateway
可爱又迷人的反派角色“yang”1 小时前
LVS+Keepalived群集
linux·运维·服务器·前端·nginx·lvs
hadage2331 小时前
--- docker 一些指令的汇总 ---
运维·docker·容器
好奇的菜鸟2 小时前
WSL 2 安装 Ubuntu 24.04 及系统迁移到非系统盘
linux·运维·ubuntu