1

Playwright で HAR ファイルを録音しようとしています。

docsによると、必要なのは を渡しRecordHarPathBrowserContextOptionsを呼び出すCloseAsyncことだけBrowserContextです。

Firefox では、これは HAR ファイルを作成しません。Chromium では、ハングアップしてCloseAsync完了しません。

例えば

static async Task Main()
{
    var playwright = await Playwright.CreateAsync();

    var currentDir = Directory.GetCurrentDirectory();

    Console.WriteLine("Trying Firefox");
    var firefox = await playwright.Firefox.LaunchAsync(new BrowserTypeLaunchOptions { Headless = false});
    await TryWith(firefox, Path.Combine(currentDir, "firefoxHar.har"));

    Console.WriteLine("Trying Chromium");
    var chromium = await playwright.Chromium.LaunchAsync(new BrowserTypeLaunchOptions { Headless = false });
    await TryWith(chromium, Path.Combine(currentDir, "chromium.har"));
}

static async Task TryWith(IBrowser browser, string harPath)
{
    var context = await browser.NewContextAsync(new BrowserNewContextOptions()
    {
        RecordHarPath = harPath
    });

    var page = await context.NewPageAsync();
    await page.GotoAsync("https://www.microsoft.com");
    var link = await page.QuerySelectorAsync("a#uhf-shopping-cart");
    await link.ClickAsync();

    Console.WriteLine("Closing Context");
    await context.CloseAsync();
    Console.WriteLine("Closing Browser");
    await browser.CloseAsync();
}
4

1 に答える 1