microsoft / microsoft/playwright

[Feature]: Allow to configure the protocol (`juggler` or `webDriverBiDi`) when launching the browser

Open
#37,277 32 comments 10 reactions 1 assignee Claimed by @whimboo View on GitHub
bidi
Dominant language
TypeScript
Stars
96.3k
Forks
6.5k
Avg merge
1d 6h
Merged PRs (30d)
180

Description

### 🚀 Feature Request

Now that WebDriver BiDi implements many of the requirements needed by Playwright, it would be great to see early adoption from users. Real-world feedback would be invaluable in helping us prioritize future API additions and enhancements.

I recently attempted to migrate another project from using Firefox with Juggler to WebDriver BiDi. However, it failed when trying to import _bidiFirefox from the playwright module. Besides the import issue itself, the use of the underscore prefix (_bidiFirefox) is also problematic. It typically indicates an internal or non-public API, which makes its usage feel unsupported or fragile.

Would it be possible to introduce a more stable and ergonomic way to choose between Juggler and WebDriver BiDi, perhaps via the launch options? For example, a `protocol` option could be added, allowing values like `juggler` (default) or `webdriverBiDi`. Internally, this would determine whether the `firefox` or `_bidiFirefox` browser class is instantiated. But maybe there is another option preferred by you?

### Example

_No response_

### Motivation

This type of setup worked well for us during the experimental phase with Puppeteer and would likely improve usability and adoption here as well.

@yury-s what do you think?

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.