Playwright Sharp Versions Save

.NET version of the Playwright testing and automation library.

v1.37.0

10 months ago

📚 Debian 12 Bookworm Support

Playwright now supports Debian 12 Bookworm on both x86_64 and arm64 for Chromium, Firefox and WebKit. Let us know if you encounter any issues!

Linux support looks like this:

Ubuntu 20.04 Ubuntu 22.04 Debian 11 Debian 12
Chromium
WebKit
Firefox

Browser Versions

  • Chromium 116.0.5845.82
  • Mozilla Firefox 115.0
  • WebKit 17.0

This version was also tested against the following stable channels:

  • Google Chrome 115
  • Microsoft Edge 115

v1.36.0

11 months ago

Highlights

🏝️ Summer maintenance release.

Browser Versions

  • Chromium 115.0.5790.75
  • Mozilla Firefox 115.0
  • WebKit 17.0

This version was also tested against the following stable channels:

  • Google Chrome 114
  • Microsoft Edge 114

v1.35.0

1 year ago

Highlights

  • New option MaskColor for methods Page.screenshot() and Locator.screenshot() to change default masking color.

  • New uninstall CLI command to uninstall browser binaries:

    $ pwsh bin/Debug/netX/playwright.ps1 uninstall # remove browsers installed by this installation
    $ pwsh bin/Debug/netX/playwright.ps1 uninstall --all # remove all ever-install Playwright browsers
    

Browser Versions

  • Chromium 115.0.5790.13
  • Mozilla Firefox 113.0
  • WebKit 16.4

This version was also tested against the following stable channels:

  • Google Chrome 114
  • Microsoft Edge 114

v1.34.0

1 year ago

Highlights

Browser Versions

  • Chromium 114.0.5735.26
  • Mozilla Firefox 113.0
  • WebKit 16.4

This version was also tested against the following stable channels:

  • Google Chrome 113
  • Microsoft Edge 113

v1.33.0

1 year ago

Highlights

Locators Update

  • Use Locator.Or to create a locator that matches either of the two locators. Consider a scenario where you'd like to click on a "New email" button, but sometimes a security settings dialog shows up instead. In this case, you can wait for either a "New email" button, or a dialog and act accordingly:

    var newEmail = page.GetByRole(AriaRole.Button, new() { Name = "New" });
    var dialog = page.GetByText("Confirm security settings");
    await Expect(newEmail.Or(dialog)).ToBeVisibleAsync();
    if (await dialog.IsVisibleAsync())
      await page.GetByRole(AriaRole.Button, new() { Name = "Dismiss" }).ClickAsync();
    await newEmail.ClickAsync();
    
  • Use new options HasNot and HasNotText in Locator.Filter to find elements that do not match certain conditions.

    var rowLocator = page.Locator("tr");
    await rowLocator
        .Filter(new() { HasNotText = "text in column 1" })
        .Filter(new() { HasNot = page.GetByRole(AriaRole.Button, new() { Name = "column 2 button" }))
        .ScreenshotAsync();
    
  • Use new web-first assertion Expect().ToBeAttachedAsync() to ensure that the element is present in the page's DOM. Do not confuse with the Expect().ToBeVisibleAsync() that ensures that element is both attached & visible.

New APIs

⚠️ Breaking change

  • The mcr.microsoft.com/playwright/dotnet:v1.33.0 now serves a Playwright image based on Ubuntu Jammy. To use the focal-based image, please use mcr.microsoft.com/playwright/dotnet:v1.33.0-focal instead.

Browser Versions

  • Chromium 113.0.5672.53
  • Mozilla Firefox 112.0
  • WebKit 16.4

This version was also tested against the following stable channels:

  • Google Chrome 112
  • Microsoft Edge 112

v1.32.0

1 year ago

v1.32.0

New APIs

Browser Versions

  • Chromium 112.0.5615.29
  • Mozilla Firefox 111.0
  • WebKit 16.4

This version was also tested against the following stable channels:

  • Google Chrome 111
  • Microsoft Edge 111

v1.31.1

1 year ago

Highlights

https://github.com/microsoft/playwright/issues/21093 - [Regression v1.31] Headless Windows shows cascading cmd windows

Browser Versions

  • Chromium 111.0.5563.19
  • Mozilla Firefox 109.0
  • WebKit 16.4

This version was also tested against the following stable channels:

  • Google Chrome 110
  • Microsoft Edge 110

v1.31.0

1 year ago

New APIs

Miscellaneous

  • DOM snapshots in trace viewer can be now opened in a separate window.
  • New option MaxRedirects for method Route.FetchAsync.
  • Playwright now supports Debian 11 arm64.

Browser Versions

  • Chromium 111.0.5563.19
  • Mozilla Firefox 109.0
  • WebKit 16.4

This version was also tested against the following stable channels:

  • Google Chrome 110
  • Microsoft Edge 110

v1.30.0

1 year ago

🎉 Happy New Year 🎉

Maintenance release with bugfixes and new browsers only.

Browser Versions

  • Chromium 110.0.5481.38
  • Mozilla Firefox 108.0.2
  • WebKit 16.4

This version was also tested against the following stable channels:

  • Google Chrome 109
  • Microsoft Edge 109

v1.29.0

1 year ago

Highlights

New APIs

  • New method Route.FetchAsync and new option Json for Route.FulfillAsync:

    await Page.RouteAsync("**/api/settings", async route => {
      // Fetch original settings.
      var response = await route.FetchAsync();
      // Force settings theme to a predefined value.
      var json = await response.JsonAsync<MyDataType>();
      json.Theme = "Solarized";
      // Fulfill with modified data.
      await route.FulfillAsync(new() {
        Json = json
      });
    });
    
  • New method Locator.AllAsync to iterate over all matching elements:

    // Check all checkboxes!
    var checkboxes = Page.Locator("role=checkbox");
    foreach (var checkbox in await checkboxes.AllAsync())
      await checkbox.CheckAsync();
    
  • Locator.SelectOptionAsync matches now by value or label:

    <select multiple>
      <option value="red">Red</div>
      <option value="green">Green</div>
      <option value="blue">Blue</div>
    </select>
    
    await element.SelectOptionAsync("Red");
    

Browser Versions

  • Chromium 109.0.5414.46
  • Mozilla Firefox 107.0
  • WebKit 16.4

This version was also tested against the following stable channels:

  • Google Chrome 108
  • Microsoft Edge 108