Skip to content

Releases: microsoft/playwright-java

v1.35.0

Choose a tag to compare

@yury-s yury-s released this 13 Jun 00:28
ef86560

Highlights

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

  • New uninstall CLI command to uninstall browser binaries:

    $ mvn exec:java -e -D exec.mainClass=com.microsoft.playwright.CLI -D exec.args="uninstall" # remove browsers installed by this installation
    $ mvn exec:java -e -D exec.mainClass=com.microsoft.playwright.CLI -D exec.args="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

Choose a tag to compare

@yury-s yury-s released this 26 May 18:49
24d13d9

Version 1.34.0

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

Choose a tag to compare

@yury-s yury-s released this 02 May 20:38
b959765

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

Choose a tag to compare

@yury-s yury-s released this 27 Mar 23:44
e5de389

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

Choose a tag to compare

@dgozman dgozman released this 28 Feb 23:15
80fa0c6

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

Choose a tag to compare

@yury-s yury-s released this 26 Jan 21:22
37c16dd

🎉 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

Choose a tag to compare

@yury-s yury-s released this 18 Jan 20:20
96cc9e6

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

Choose a tag to compare

@yury-s yury-s released this 29 Nov 00:15
71ea72b

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

Choose a tag to compare

@yury-s yury-s released this 16 Nov 22:42
e47d0ab

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

Choose a tag to compare

@yury-s yury-s released this 12 Oct 16:03
5229812

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