|
| 1 | +--- |
| 2 | +title: "BiDi implementation API is internal" |
| 3 | +linkTitle: "BiDi implementation API" |
| 4 | +weight: 1 |
| 5 | +aliases: |
| 6 | + [ |
| 7 | + "/documentation/warnings/SELENIUM001/" |
| 8 | + ] |
| 9 | +description: > |
| 10 | + Why Selenium's low-level BiDi implementation classes are marked internal, |
| 11 | + and what to use instead. |
| 12 | +--- |
| 13 | + |
| 14 | +If your IDE strikes through a Selenium BiDi class or method, shows an "Internal API" |
| 15 | +tooltip, or (in .NET) emits a compiler warning, you've reached one of Selenium's |
| 16 | +**internal BiDi implementation APIs**. |
| 17 | + |
| 18 | +These are the low-level classes that map directly onto the BiDi (and CDP) wire protocol, |
| 19 | +under namespaces like `org.openqa.selenium.bidi.*` (Java), `OpenQA.Selenium.BiDi.*` |
| 20 | +(.NET), `selenium.webdriver.common.bidi.*` (Python), and `Selenium::WebDriver::BiDi::*` |
| 21 | +(Ruby). They are public only because the higher-level features need them. |
| 22 | + |
| 23 | +## Why they are marked internal |
| 24 | + |
| 25 | +The goal is for the high-level APIs to cover everything you need, so you never have to |
| 26 | +reach for these low-level classes directly. They are marked internal to steer you toward |
| 27 | +those high-level APIs — but they remain available as an escape hatch if you have a use |
| 28 | +case the high-level APIs don't yet cover. |
| 29 | + |
| 30 | +## What to use instead |
| 31 | + |
| 32 | +Use the high-level BiDi APIs: |
| 33 | +* [network](/documentation/webdriver/bidi/network/) |
| 34 | +* [script](/documentation/webdriver/bidi/script/) |
| 35 | + |
| 36 | +If your use case is only possible through the internal classes, please |
| 37 | +[open an issue](https://github.com/SeleniumHQ/selenium/issues) so the high-level API can cover it. |
| 38 | + |
0 commit comments