Firefox capabilities
geckodriver has a few capabilities that are specific to Firefox. Most of these are documented on MDN.
We additionally have some capabilities that largely are implementation concerns that normal users should not care about:
moz:debuggerAddress
A boolean value to indicate if Firefox has to be started with the Remote Protocol enabled, which is a low-level debugging interface that implements a subset of the Chrome DevTools Protocol (CDP).
When enabled the returned moz:debuggerAddress
capability of the New Session
command is the host:port
combination of a server that supports the following
HTTP endpoints:
GET /json/version
The browser version metadata:
{
"Browser": "Firefox/84.0a1",
"Protocol-Version": "1.0",
"User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:84.0) Gecko/20100101 Firefox/84.0",
"V8-Version": "1.0",
"WebKit-Version": "1.0",
"webSocketDebuggerUrl": "ws://localhost:9222/devtools/browser/fe507083-2960-a442-bbd7-7dfe1f111c05"
}
GET /json/list
A list of all available websocket targets:
[ {
"description": "",
"devtoolsFrontendUrl": null,
"faviconUrl": "",
"id": "ecbf9028-676a-1b40-8596-a5edc0e2875b",
"type": "page",
"url": "https://www.mozilla.org/en-US/",
"browsingContextId": 29,
"webSocketDebuggerUrl": "ws://localhost:9222/devtools/page/ecbf9028-676a-1b40-8596-a5edc0e2875b"
} ]
The contained webSocketDebuggerUrl
entries can be used to connect to the
websocket and interact with the browser by using the CDP protocol.
moz:webdriverClick
A boolean value to indicate which kind of interactability checks to run when performing a click or sending keys to an elements. For Firefoxen prior to version 58.0 some legacy code as imported from an older version of FirefoxDriver was in use.
With Firefox 58 the interactability checks as required by the [WebDriver] specification are enabled by default. This means geckodriver will additionally check if an element is obscured by another when clicking, and if an element is focusable for sending keys.
Because of this change in behaviour, we are aware that some extra errors could be returned. In most cases the test in question might have to be updated so it’s conform with the new checks. But if the problem is located in geckodriver, then please raise an issue in the [issue tracker].
To temporarily disable the WebDriver conformant checks use false
as value for this capability.
Please note that this capability exists only temporarily, and that it will be removed once the interactability checks have been stabilized.