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 116 release cycle.
With Firefox being an open source project, we are grateful to get contributions from people outside of Mozilla:
By enhancing the implementation of the WebDriver BiDi protocol we can offer more features to our users.
New command: session.end
With the support of the
session.end command, users can terminate the automation session. This was previously only possible for sessions using both WebDriver Classic and WebDriver BiDi. It is now possible also for WebDriver BiDi-only sessions.
Capability matching for session.new
Capability matching is a feature already supported in WebDriver Classic. It allows to define expectations about the target browser, such as browser name, platform name, … But it is also used to configure the session to some extent. For instance to specify whether insecure certificates should be accepted.
When using the
session.new command, users should provide a
capabilities parameter, which can contain the
alwaysMatch and the
firstMatch properties. To learn more about those properties and capability matching in general, the WebDriver Capabilities page on MDN is a good reference.
Note that WebDriver BiDi sessions do not support all the capabilities from WebDriver classic, because some of them are irrelevant for WebDriver BiDi. The following capabilities are not supported for a WebDriver BiDi only session:
On top of this, the
session.new result will also contain a
capabilities property with the matched capabilities.
The release 116 also comes with a few bug fixes, including:
- Shadow roots are now correctly serialized when they are the root of a returned value.
networkevent time origin information was renamed from
networkevent network.responseCompleted is now correctly emitted for navigation requests involving a redirect.
Marionette (WebDriver classic)
Removing the moz:useNonSpecCompliantPointerOrigin capability
A deprecation warning for this capability was added since geckodriver 0.33.0. Support for this capability has now been removed in Firefox 116. Users who still need this feature can still use the Firefox 115 ESR release as long as it is supported.
A couple of bugs have been fixed for Marionette and WebDriver Classic:
- A regression in Marionette has been fixed that prevented us from differentiating stale elements (DOM elements that have been seen before on the page) from unknown elements for a given browsing context.
- Creating a new session should now properly wait for the initial context to be loaded.