Releases: microsoft/playwright-java
v1.13.0
Playwright
- 🖖 Programmatic drag-and-drop support via the
Page.dragAndDrop()
API. - 🔎 Enhanced HAR with body sizes for requests and responses. Use via
setRecordHarPath
option inBrowser.newContext()
.
Tools
- Playwright Trace Viewer now shows parameters, returned values and
console.log()
calls.
New and Overhauled Guides
- Intro
- Authentication
- Chome Extensions
- Playwright Test Configuration
- Playwright Test Annotations
- Playwright Test Fixtures
Browser Versions
- Chromium 93.0.4576.0
- Mozilla Firefox 90.0
- WebKit 14.2
New Playwright APIs
- new
baseURL
option inBrowser.newContext()
andBrowser.newPage()
Response.securityDetails()
andResponse.serverAddr()
Page.dragAndDrop()
andFrame.dragAndDrop()
Download.cancel()
Page.inputValue()
,Frame.inputValue()
andElementHandle.inputValue()
- new
force
option inPage.fill()
,Frame.fill()
, andElementHandle.fill()
- new
force
option inPage.selectOption()
,Frame.selectOption()
, andElementHandle.selectOption()
v1.12.1
Highlights
This patch release includes bugfixes for the following issues:
microsoft/playwright#7015 - [BUG] Firefox: strange undefined toJSON property on JS objects
microsoft/playwright#7048 - [BUG] Dialogs cannot be dismissed if tracing is on in Chromium or Webkit
microsoft/playwright#7058 - [BUG] Getting no video frame error for mobile chrome
Browser Versions
- Chromium 93.0.4530.0
- Mozilla Firefox 89.0
- WebKit 14.2
This version of Playwright was also tested against the following stable channels:
- Google Chrome 91
- Microsoft Edge 91
v1.12.0
🧟♂️ Introducing Playwright Trace & TraceViewer
Playwright Trace Viewer is a new GUI tool that helps exploring recorded Playwright traces after the script ran. Playwright traces let you examine:
- page DOM before and after each Playwright action
- page rendering before and after each Playwright action
- browser network during script execution
Traces are recorded using the new BrowserContext.tracing()
API:
Browser browser = chromium.launch();
BrowserContext context = Browser.newContext();
// Start tracing before creating / navigating a page.
context.tracing.start(new Tracing.StartOptions()
.setScreenshots(true)
.setSnapshots(true);
Page page = context.newPage();
page.goto("https://playwright.dev");
// Stop tracing and export it into a zip archive.
context.tracing.stop(new Tracing.StopOptions()
.setPath(Paths.get("trace.zip")));
Traces are examined later with the Playwright CLI:
mvn exec:java -e -Dexec.mainClass=com.microsoft.playwright.CLI -Dexec.args="show-trace trace.zip"
That will open the following GUI:
👉 Read more in trace viewer documentation.
Browser Versions
- Chromium 93.0.4530.0
- Mozilla Firefox 89.0
- WebKit 14.2
This version of Playwright was also tested against the following stable channels:
- Google Chrome 91
- Microsoft Edge 91
New APIs
reducedMotion
option inPage.emulateMedia()
,BrowserType.launchPersistentContext()
,Browser.newContext()
andBrowser.newPage()
BrowserContext.onRequest()
BrowserContext.onRequestFailed()
BrowserContext.onRequestFinished()
BrowserContext.onResponse()
tracesDir
option inBrowserType.launch()
andBrowserType.launchPersistentContext()
- new
BrowserContext.tracing()
API namespace - new
Download.page()
method
v1.11.1
Highlights
This patch includes bug fixes across all languages for the following issues:
- microsoft/playwright-python#679 - can't get browser's context pages after connect_over_cdp
- #432 - [Bug] Videos are not complete when an exception is thrown
Browser Versions
- Chromium 92.0.4498.0
- Mozilla Firefox 89.0b6
- WebKit 14.2
This version of Playwright was also tested against the following stable channels:
- Google Chrome 90
- Microsoft Edge 90
v1.11.0
Highlights
🎥 New video: Playwright: A New Test Automation Framework for the Modern Web (slides)
- We talked about Playwright
- Showed engineering work behind the scenes
- Did live demos with new features ✨
- Special thanks to applitools for hosting the event and inviting us!
⚙️ Chrome DevTools Protocol support with BrowserType.connectOverCDP()
.
Browser Versions
- Chromium 92.0.4498.0
- Mozilla Firefox 89.0b6
- WebKit 14.2
This version of Playwright was also tested against the following stable channels:
- Google Chrome 90
- Microsoft Edge 90
New APIs
- new emulation devices: Galaxy S8, Galaxy S9+, Galaxy Tab S4, Pixel 3, Pixel 4
- new methods:
BrowserType.connectOverCDP()
to connect using Chrome DevTools protocolBrowserType.connect()
to connect to a Playwright serverPage.waitForURL()
to ensure navigations to URLVideo.delete()
andVideo.saveAs()
to manage screen recording
- new options:
screen
option in theBrowser.newContext()
method to emulatewindow.screen
dimensionsposition
option inPage.check()
andPage.uncheck()
methodstrial
option to dry-run actions inPage.check()
,Page.uncheck()
,Page.click()
,Page.dblclick()
,Page.hover()
andPage.tap()
headers
option inBrowserType.connect()
v1.10.0
Highlights
- Playwright for Java v1.10 is now stable!
- Run Playwright against Google Chrome and Microsoft Edge stable channels with the new channels API.
- Chromium screenshots are fast on Mac & Windows.
Bundled Browser Versions
- Chromium 90.0.4430.0
- Mozilla Firefox 87.0b10
- WebKit 14.2
This version of Playwright was also tested against the following stable channels:
- Google Chrome 89
- Microsoft Edge 89
New APIs
BrowserType.launch()
now accepts the new'channel'
option. Read more in our documentation.
v1.9.1-alpha-0
Highlights
- This release is based on Playwright v1.9.2
- Text selector and
click()
fixes.
Browser Versions
- Chromium 90.0.4421.0
- Mozilla Firefox 86.0b10
- WebKit 14.1
Issues Closed (2)
microsoft/playwright#5634 - [REGRESSION]: Test selector changed behavior
microsoft/playwright#5674 - [REGRESSION]: Label is not visible anymore
v1.9.0-alpha-0
Highlights
-
Playwright goes semver. We are jumping from
0.180.*
to1.9.0-alapha-0
to 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=1
environment 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
dialog
event 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])