#browser-automation
#cross-browser-testing
## WebDriver implementation
As WebdriverIO implements the [[+Selenium architecture#WebDriver standard|W3C WebDriver standard]], its core architecture is pretty much the same as any other Selenium WebDriver language binding.
However, note that they have created their own ("non-opinionated" as they say) JavaScript language binding. It is published under the name of [**webdriver**](https://www.npmjs.com/package/webdriver) on NPM. It also offers the possibility to issue Appium-specific commands.
Do not confuse that **webdriver** package with the official JavaScript bindings of the Selenium project that are published as [**selenium-webdriver**](https://www.npmjs.com/package/selenium-webdriver).
## Chrome DevTools Protocol
Recently, support for the [[Chrome DevTools Protocol (CDP)]] has been added as well. With that, it is even possible to control the browser both with Puppeteer and WebDriver commands during the same session.
## **@wdio/cli** package
The [**@wdio/cli**](https://webdriver.io/docs/clioptions/) package adds test runner functionality and configuration management.