WebDriver is a remote control interface that enables introspection and control of user agents. As such it can help developers to verify that their websites are working and performing well with all major browsers. The protocol is standardized by the W3C and consists of two separate specifications: WebDriver classic (HTTP) and the new WebDriver BiDi (Bi-Directional).
This newsletter gives an overview of the work we’ve done as part of the Firefox 117 release cycle
With Firefox being an open source project, we are grateful to get contributions from people outside of Mozilla.
No new contribution to mention for release 117, but we already have a few planned for release 118. It’s really easy to get started!
Firefox 117 comes with a lot of new WebDriver BiDi features. We made several improvements to existing commands and events, but this release also contains several new commands and events.
New: “browser.close” command
Clients using only WebDriver BiDi can now cleanly close the browser and terminate all WebDriver sessions by using the
browser.close command. It will return before closing the WebSocket connection, so it can be used as any other command.
browser.close takes no argument and has no return value.
New: “browsingContext.setViewport” command
browsingContext.setViewport command allows users to change the characteristics of the viewport of a specific browsing context. The command supports a
viewport parameter with
height properties, which will set the dimensions of the viewport. It can be useful to emulate narrow viewports or test responsive design.
To restore the viewport afterwards, simply call the command without passing the
viewport parameter and the default dimensions will be re-applied.
New: “browsingContext.fragmentNavigated” event
browsingContext.fragmentNavigated is a new event which will be emitted for a same-document navigation, for instance when navigating to an anchor of the current document. The payload of this event is a
browsingContext.NavigationInfo, similar to the existing
Support for “background” argument in browsingContext.create
A new argument
background is now supported for
background is set to
true, the new context (tab or window) will be opened in the background. This argument is optional and defaults to
More importantly, this means
browsingContext.create now opens contexts in the foreground by default, whereas they were always in the background before. This should make it easier to handle new tabs and windows, until we support
browsingContext.activate to change the selected context dynamically (which is coming soon).
Support for “clip” argument in browsingContext.captureScreenshot
clip argument for
browsingContext.captureScreenshot allows to restrict the screenshot to a specific area or to a specific element.
clip can either be a
browsingContext.BoxClipRectangle or a
BoxClipRectangle expects viewport coordinates (
y) and dimensions (
ElementClipRectangle expects at least an
element property, and you can also provide a
scrollIntoView boolean to make sure the element is visible before capturing the screenshot. This can be especially useful for component visual regression testing.
Support for navigation id in several commands and events
Starting with Firefox 117, all events and commands which relate to a navigation should now provide a non-null
navigation id. This id is a
UUID which identifies a specific page navigation and will help to identify events and commands linked to a single navigation. The
navigation property is now available in the response of the
browsingContext.navigate command, as well as in the payload of the following events:
network.responseCompleted. Note that for
network events, the
navigation property will only be set for the initial request of a navigation, not for subsequent requests triggered by the page load.
Firefox 117 also comes with a few bug fixes, including:
networkevents are now serialized as
network.BytesValue, which will provide a better support for non-UTF8 values.
browsingContext.createcommand will now wait until the created context has a valid size, so that it can safely be used by consumers as soon as the command resolves.
Marionette (WebDriver classic)
There are no updates for Marionette and WebDriver Classic in Firefox 117.