You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

自定义Playwright Context时视频未生成且无法嵌入HTML报告求解决方案

问题解决:自定义Browser Context下Playwright视频无法生成并嵌入HTML报告

问题描述

配置文件playwright.config.ts中已设置video: "on",但手动创建Browser Context后,视频未生成;使用recordVideo选项录制的视频仅存于独立文件夹,无法嵌入Playwright的HTML测试报告中。

原因分析

Playwright Test的内置视频录制功能(即配置文件中的video选项)仅对框架自动创建的Browser和Context实例生效。手动调用chromium.launch()、browser.newContext()创建的实例,不会被Playwright Test框架跟踪,因此无法触发配置中的视频录制规则,也无法将视频关联到HTML报告。

解决方案

方案1:使用Playwright Test内置的Context(推荐)

直接使用Playwright Test提供的fixture(如page、browser、context),框架会自动应用配置中的视频设置,视频将自动生成并嵌入HTML报告。

修改后的测试代码:

import { test } from '@playwright/test';

test('test', async ({ page }) => {
    await page.goto('https://www.google.com');
    // 无需手动关闭context或browser,框架会自动处理资源释放
});

如果需要自定义Context配置,可基于框架的browser fixture创建,并继承全局配置:

import { test } from '@playwright/test';

test('test with custom context', async ({ browser }) => {
    // 继承全局配置的video设置,同时可添加自定义配置项
    const context = await browser.newContext(test.use());
    const page = await context.newPage();
    await page.goto('https://www.google.com');
    await context.close();
});

方案2:手动关联视频到测试报告(不推荐)

若必须手动创建Context,需手动处理视频录制并将其关联到测试报告的附件中:

import { chromium } from 'playwright';
import { test } from '@playwright/test';

test('test with manual context', async () => {
    const browser = await chromium.launch();
    // 指定视频存储目录,可按需设置视频尺寸
    const context = await browser.newContext({
        recordVideo: { dir: 'videos/' }
    });
    const page = await context.newPage();
    await page.goto('https://www.google.com');
    
    // 获取生成的视频文件路径
    const videoPath = await page.video()?.path();
    if (videoPath) {
        // 将视频添加为测试报告附件,实现嵌入效果
        test.info().attachments.push({
            name: 'test-video',
            path: videoPath,
            contentType: 'video/webm'
        });
    }

    await context.close();
    await browser.close();
});

注意:此方案需手动管理视频文件的生命周期,且无法享受框架自动清理冗余视频、失败时自动保留视频等特性,仅在特殊场景下使用。

总结

优先选择方案1,利用Playwright Test的fixture机制让框架自动管理浏览器和Context,既能保证配置中的视频规则生效,又能让视频自动嵌入HTML报告,实现高效的测试流程。

内容的提问来源于stack exchange,提问作者Shubnit

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.27 20:42:15