Skip to content

Releases: microsoft/playwright-java

v1.33.0

02 May 20:38
b959765
Compare
Choose a tag to compare

Version 1.33.0

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:

    Locator newEmail = page.getByRole(AriaRole.BUTTON, new Page.GetByRoleOptions().setName("New"));
    Locator dialog = page.getByText("Confirm security settings");
    assertThat(newEmail.or(dialog)).isVisible();
    if (dialog.isVisible())
      page.getByRole(AriaRole.BUTTON, new Page.GetByRoleOptions().setName("Dismiss")).click();
    newEmail.click();
  • Use new options setHasNot and setHasNotText in Locator.filter()
    to find elements that do not match certain conditions.

    Locator rowLocator = page.locator("tr");
    rowLocator
        .filter(new Locator.FilterOptions().setHasNotText("text in column 1"))
        .filter(new Locator.FilterOptions().setHasNot(
          page.getByRole(AriaRole.BUTTON,
            new Page.GetByRoleOptions().setName("column 2 button" ))))
        .screenshot();
  • Use new web-first assertion LocatorAssertions.isAttached() to ensure that the element
    is present in the page's DOM. Do not confuse with the LocatorAssertions.isVisible() that ensures that
    element is both attached & visible.

New APIs

Other highlights

  • Native support for Apple Silicon - Playwright now runs without Rosetta
  • Added Ubuntu 22.04 (Jammy) Docker image

⚠️ Breaking change

  • The mcr.microsoft.com/playwright/java:v1.33.0 now serves a Playwright image based on Ubuntu Jammy.
    To use the focal-based image, please use mcr.microsoft.com/playwright/java: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

27 Mar 23:44
e5de389
Compare
Choose a tag to compare

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.0

28 Feb 23:15
80fa0c6
Compare
Choose a tag to compare

New APIs

New assertion assertThat(locator).isInViewport() ensures that locator points to an element that intersects viewport, according to the intersection observer API.

Locator locator = page.getByRole(AriaRole.BUTTON);

// Make sure at least some part of element intersects viewport.
assertThat(locator).isInViewport();

// Make sure element is fully outside of viewport.
assertThat(locator).not().isInViewport();

// Make sure that at least half of the element intersects viewport.
assertThat(locator).isInViewport(new LocatorAssertions.IsInViewportOptions().setRatio(0.5));

Miscellaneous

  • DOM snapshots in trace viewer can be now opened in a separate window.
  • New option setMaxRedirects for method Route.fetch.
  • Official docker images now include Node 18 instead of Node 16.

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

26 Jan 21:22
37c16dd
Compare
Choose a tag to compare

🎉 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

18 Jan 20:20
96cc9e6
Compare
Choose a tag to compare

New APIs

  • New method Route.fetch:

    page.route("**/api/settings", route -> {
      // Fetch original settings.
      APIResponse response = route.fetch();
      // Force settings theme to a predefined value.
      String body = response.text().replace("\"theme\":\"default\"",
        "\"theme\":\"Solorized\"");
      // Fulfill with modified data.
      route.fulfill(new Route.FulfillOptions().setResponse(response).setBody(body));
    });
  • New method Locator.all to iterate over all matching elements:

    // Check all checkboxes!
    Locator checkboxes = page.getByRole(AriaRole.CHECKBOX);
    for (Locator checkbox : checkboxes.all())
      checkbox.check();
  • Locator.selectOption matches now by value or label:

    <select multiple>
      <option value="red">Red</div>
      <option value="green">Green</div>
      <option value="blue">Blue</div>
    </select>
    element.selectOption("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

v1.28.1

29 Nov 00:15
71ea72b
Compare
Choose a tag to compare

Highlights

This patch release includes the following bug fixes:

#1130 - [Bug] Chaining Locator.getByRole() returns null
microsoft/playwright#18920 - [BUG] [expanded=false] in role selector returns elements without aria-expanded attribute

Browser Versions

  • Chromium 108.0.5359.29
  • Mozilla Firefox 106.0
  • WebKit 16.4

This version was also tested against the following stable channels:

  • Google Chrome 107
  • Microsoft Edge 107

v1.28.0

16 Nov 22:42
e47d0ab
Compare
Choose a tag to compare

Highlights

Playwright Tools

  • Live Locators in CodeGen. Generate a locator for any element on the page using "Explore" tool.

Locator Explorer

New APIs

Browser Versions

  • Chromium 108.0.5359.29
  • Mozilla Firefox 106.0
  • WebKit 16.4

This version was also tested against the following stable channels:

  • Google Chrome 107
  • Microsoft Edge 107

v1.27.1

12 Oct 16:03
5229812
Compare
Choose a tag to compare

Highlights

This patch release includes the following bug fixes:

microsoft/playwright#18010 - fix(generator): generate nice locators for arbitrary selectors
microsoft/playwright#17955 - [Question] Github Actions test compatibility check failed mitigation?
microsoft/playwright#17952 - fix: fix typo in treeitem role typing

Browser Versions

  • Chromium 107.0.5304.18
  • Mozilla Firefox 105.0.1
  • WebKit 16.0

This version was also tested against the following stable channels:

  • Google Chrome 106
  • Microsoft Edge 106

v1.27.0

08 Oct 01:11
dce0fa3
Compare
Choose a tag to compare

Highlights

Locators

With these new APIs writing locators is a joy:

page.getByLabel("User Name").fill("John");

page.getByLabel("Password").fill("secret-password");

page.getByRole(AriaRole.BUTTON, new Page.GetByRoleOptions().setName("Sign in")).click();

assertThat(page.getByText("Welcome, John!")).isVisible();

All the same methods are also available on Locator, FrameLocator and Frame classes.

Other highlights

  • As announced in v1.25, Ubuntu 18 will not be supported as of Dec 2022. In addition to that, there will be no WebKit updates on Ubuntu 18 starting from the next Playwright release.

Behavior Changes

  • expect(locator).hasAttribute(name, value, options) with an empty value does not match missing attribute anymore. For example, the following snippet will succeed when button does not have a disabled attribute.

    assertThat(page.getByRole(AriaRole.BUTTON)).hasAttribute("disabled", "");

Browser Versions

  • Chromium 107.0.5304.18
  • Mozilla Firefox 105.0.1
  • WebKit 16.0

This version was also tested against the following stable channels:

  • Google Chrome 106
  • Microsoft Edge 106

v1.26.1

28 Sep 00:37
c1c538c
Compare
Choose a tag to compare

Highlights

This patch includes the following bug fixes (they were reported in Playwright Python but manifested themselves in Java too):

microsoft/playwright-python#1561 - [Question]: 'c:\Users\ASUS' is not recognized as an internal or external command, operable program or batch file.
microsoft/playwright-python#1565 - [BUG] AttributeError: 'PlaywrightContextManager' object has no attribute '_playwright

Browser Versions

  • Chromium 106.0.5249.30
  • Mozilla Firefox 104.0
  • WebKit 16.0

This version was also tested against the following stable channels:

  • Google Chrome 105
  • Microsoft Edge 105