Playwright で HAR ファイルを録音しようとしています。
docsによると、必要なのは を渡しRecordHarPath
てBrowserContextOptions
を呼び出す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();
}