Releases: microsoft/playwright-java
Release list
v1.9.0-alpha-0
Highlights
-
Playwright goes semver. We are jumping from
0.180.*to1.9.0-alapha-0to become semver compliant. This is a breaking change, but once we drop the Alpha bit, it'll be in stone for years! -
Documentation site is now all about Java! It has guides, sample snippets, API docs.
-
Playwright Inspector is a new GUI tool to author and debug your tests.
- Line-by-line debugging of your Playwright scripts, with play, pause and step-through. Set
PLAYWRIGHT_JAVA_SRC=<src dir>to let debugger know location of your java sources. - Author new scripts by recording user actions.
- Generate element selectors for your script by hovering over elements.
- Set the
PWDEBUG=1environment variable to launch the Inspector
- Line-by-line debugging of your Playwright scripts, with play, pause and step-through. Set
-
Pause script execution with
page.pause()in headed mode. Pausing the page launches Playwright Inspector for debugging. -
New has-text pseudo-class for CSS selectors.
:has-text("example")matches any element containing"example"somewhere inside, possibly in a child or a descendant element. See more examples. -
Page dialogs are now auto-dismissed during execution, unless a listener for
dialogevent is configured. Learn more about this.
Browser Versions
- Chromium 90.0.4421.0
- Mozilla Firefox 86.0b10
- WebKit 14.1
New APIs
v0.181.0
v0.180.0
Highlights
- Selecting elements based on layout with
:left-of(),:right-of(),:above()and:below() - Playwright now includes command line interface, former playwright-cli. Give it a try with
npx playwright --help - Documentation site now has a lot more content, and a dedicated python section
selectOption(selector, values[, options])now waits for the options to be present- New methods to assert element state like
page.isEditable('selector')
API changes since the last 0.171.0 version:
- Deferred interface has been removed, use
waitFor*methods instead:
// Before
Deferred<Request> event = page.waitForRequest();
page.click("a");
Request request = event.get();// After
Request request = page.waitForRequest(() -> page.click("a"));- Listener interface is gone, use corresponding
on*/off*methods with typed parameter:
// Before
page.addListener(Page.EventType.REQUESTFAILED, event -> {
Request request = (Request) event.data();
System.out.println(request.url());
});// After
page.onRequestFailed(request -> {
System.out.println(request.url());
});Browser Versions
- Chromium 90.0.4392.0
- Mozilla Firefox 85.0b5
- WebKit 14.1
New APIs
elementHandle.isChecked()elementHandle.isDisabled()elementHandle.isEditable()elementHandle.isEnabled()elementHandle.isHidden()elementHandle.isVisible()page.isChecked(selector[, options])page.isDisabled(selector[, options])page.isEditable(selector[, options])page.isEnabled(selector[, options])page.isHidden(selector[, options])page.isVisible(selector[, options])- New option
'editable'inelementHandle.waitForElementState(state[, options])