WebKit / standards-positions

WebKit's positions on emerging web specifications
https://webkit.org/standards-positions/
241 stars 18 forks source link

Request for position: WebDriver BiDi #240

Closed lolaodelola closed 9 months ago

lolaodelola commented 11 months ago

WebKittens

@gsnedders

Title of the spec

WebDriver BiDi

URL to the spec

https://w3c.github.io/webdriver-bidi/

URL to the spec's repository

https://github.com/w3c/webdriver-bidi

Issue Tracker URL

https://github.com/w3c/webdriver-bidi/issues

Explainer URL

https://github.com/w3c/webdriver-bidi/blob/main/explainer.md

TAG Design Review URL

https://github.com/w3ctag/design-reviews/issues/869

Mozilla standards-positions issue URL

https://github.com/mozilla/standards-positions/issues/632

WebKit Bugzilla URL

No response

Radar URL

No response

Description

WebDriver-BiDi defines a WebSockets-based bidirectional protocol for external tools to interact with and control a web browser. The initial target use case is automated testing of web applications.

The WebDriver “Classic” specification implemented by major browser engines lacks bidirectional capabilities, making it difficult to test contemporary web applications, which are often highly interactive and event-driven. Consequently modern testing tools (e.g. Puppeteer, Playwright, Cypress) have been written on top of browser-specific proprietary protocols which provide a bidirectional communications model. Tools designed around the WebDriver standard (e.g. Selenium) have also begun to implement new functionality that depends on browser-specific protocols because of this limitation in the architecture of the existing specification.

The widespread use of browser-specific protocols for remote automation and testing makes it harder for web developers to write tests across multiple browsers. This in turn disadvantages implementations of the web platform that don't enjoy specific support from popular testing tools, and makes it more likely that users will run into content that doesn't work in their choice of user agent.

WebDriver-BiDi aims at providing a standard & cross-browser alternative to those browser-specific protocols, allowing testing tools to work with any compliant implementation.

The specification already includes a solid core as well as brand new features that weren’t feasible to design within the WebDriver Classic protocol (such as Logging). Additional modules with commands & events are under active development.

Both Chrome/ChromeDriver 106 and Firefox 102 shipped support for the WebDriver BiDi standard in 2022.

annevk commented 9 months ago

I discussed this with colleagues and we are supportive of this effort. I suggest we resolve this as "position: support" one week from now.