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 130 release cycle.
Contributions
Firefox – including our WebDriver implementation – is developed as an open source project, and everyone is welcome to contribute. If you ever wanted to contribute to an open source project used by millions of users, or are interested in some experience in software development, jump in.
We are always grateful to receive external contributions, here are the ones which made it in Firefox 130:
- Andrew Nicols fixed an issue in
WebDriver:ElementSendKeys
so that it only scrolls the element into view if it is not already visible. - cauasene00 landed a patch so that system add-ons are now completely disabled by default.
WebDriver code is written in JavaScript, Python, and Rust so any web developer can contribute! Read how to setup the work environment and check the list of mentored issues for Marionette.
General
Bug fixes
- System add-ons are now completely disabled by default.
- Fixed an issue with the internal prompt listener to correctly select the appropriate user prompt on Android.
WebDriver BiDi
New: Support for the “browsingContext.navigationFailed” event
When automating websites, navigation is a common scenario that requires careful handling, especially when it comes to notifying clients if the navigation fails. The new “browsingContext.navigationFailed
” event is designed to assist with this by allowing clients to register for and receive events when a navigation attempt is unsuccessful. The payload of the event is similar to all the other already available navigation specific events.
Bug fixes
- The “
network.setCacheBehavior
” command now allows defining the network cache behavior both globally and for individual navigables simultaneously. - The “
network.responseCompleted
” and “network.fetchError
” events are now emitted when the actual network request stops, eliminating a race condition where “browsingContext.domContentLoaded
” and “browsingContext.load
” events were emitted before the"network.responseCompleted"
event. - Fixed an issue where the “network.authRequired” event was sent out multiple times with each call to the “
network.continueWithAuth
” command. - Data URLs (e.g., for background images or fetch requests) are now fully supported across all network events.
Marionette (WebDriver classic)
Bug fixes
- Fixed an issue in “
WebDriver:ElementSendKeys"
so that it only scrolls the element into view if it is not already visible.
Leave a Reply