Skip to content

Instantly share code, notes, and snippets.

Created September 9, 2022 13:54
  • Star 10 You must be signed in to star a gist
  • Fork 2 You must be signed in to fork a gist
Star You must be signed in to star a gist
Save khalidabuhakmeh/cfc0e3ba6b311b8a9ca3154fd5086a6a to your computer and use it in GitHub Desktop.
Playwright tests with XUnit
public class SharedPlaywrightCollection : ICollectionFixture<PlaywrightFixture> {}
// ReSharper disable once ClassNeverInstantiated.Global
public class PlaywrightFixture : IAsyncLifetime
public async Task InitializeAsync()
PlaywrightInstance = await Playwright.CreateAsync();
Browser = await PlaywrightInstance.Chromium.LaunchAsync();
public IBrowser Browser { get; set; } = null!;
private IPlaywright PlaywrightInstance { get; set; } = null!;
public async Task DisposeAsync()
await Browser.DisposeAsync();
using Microsoft.Playwright;
using Xunit;
namespace WebTests;
public class UnitTest1
: IClassFixture<PlaywrightFixture>
private IBrowser Browser { get; }
public UnitTest1(PlaywrightFixture fixture)
Browser = fixture.Browser;
public async Task Google_Im_Feeling_lucky()
var page = await Browser.NewPageAsync();
await page.GotoAsync("");
var locator = page.Locator("input#gbqfbb");
var actual = await locator.CountAsync();
Assert.Equal(1, actual);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment