【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     
相关推荐
HIT_Weston9 小时前
68、【Ubuntu】【Hugo】搭建私人博客:方案分析(二)
linux·运维·ubuntu
cws2004019 小时前
HeidiSQL 使用操作说明书
运维·数据库·windows·mysql·heidisql
prettyxian9 小时前
【linux】进程概念(1)PCB、系统调用与 proc 目录全解析
linux·运维·服务器
乾元10 小时前
用 AI 做联动:当应用层出现问题,网络如何被“自动拉入决策回路”
运维·开发语言·网络·人工智能·ci/cd·自动化
youxiao_9010 小时前
Docker 容器(一)
运维·docker·容器
小尧嵌入式10 小时前
Linux进程线程与进程间通信
linux·运维·服务器·c语言·开发语言·数据结构·microsoft
Arvin62710 小时前
docker /var/lib/docker/overlay2磁盘满的处理方法
运维·docker·容器
Bruce_Liuxiaowei10 小时前
网站敏感文件_目录大全(分类记忆+风险标注)
运维·网络·网络协议·http·网络安全·https
csdn_aspnet10 小时前
MobaXterm 运维实战、技巧与自动化
运维·自动化·mobaxterm
2201_7611990410 小时前
jenkins找不到Build when a change is pushed to GitHub
运维·github·jenkins