webdriverio/website/i18n/ar/docusaurus-plugin-content-docs/current/api/Protocols.md
Christian Bromann eff39ea68e
chore(docs): New Crowdin updates (#11166)
* New translations docker.md (German)

* New translations docker.md (Italian)

* New translations docker.md (Japanese)

* New translations docker.md (Polish)

* New translations docker.md (Portuguese)

* New translations docker.md (Russian)

* New translations docker.md (Ukrainian)

* New translations docker.md (Chinese Simplified)

* New translations docker.md (Persian)

* New translations docker.md (Tamil)

* New translations docker.md (Hindi)

* New translations boilerplateprojects.md (Belarusian)

* New translations boilerplateprojects.md (Portuguese)

* New translations customreporter.md (Belarusian)

* New translations customreporter.md (Portuguese)

* New translations proxy.md (French)

* New translations configuration.md (Spanish)

* New translations proxy.md (Spanish)

* New translations proxy.md (Arabic)

* New translations cloudservices.md (Belarusian)

* New translations configuration.md (Belarusian)

* New translations proxy.md (Belarusian)

* New translations proxy.md (Bulgarian)

* New translations configuration.md (German)

* New translations proxy.md (German)

* New translations proxy.md (Italian)

* New translations proxy.md (Japanese)

* New translations proxy.md (Polish)

* New translations cloudservices.md (Portuguese)

* New translations configuration.md (Portuguese)

* New translations proxy.md (Portuguese)

* New translations proxy.md (Russian)

* New translations proxy.md (Ukrainian)

* New translations proxy.md (Chinese Simplified)

* New translations proxy.md (Persian)

* New translations proxy.md (Tamil)

* New translations configuration.md (Hindi)

* New translations proxy.md (Hindi)

* New translations setuptypes.md (French)

* New translations setuptypes.md (Spanish)

* New translations setuptypes.md (Arabic)

* New translations setuptypes.md (Belarusian)

* New translations setuptypes.md (Bulgarian)

* New translations setuptypes.md (German)

* New translations setuptypes.md (Italian)

* New translations setuptypes.md (Japanese)

* New translations setuptypes.md (Polish)

* New translations setuptypes.md (Portuguese)

* New translations setuptypes.md (Russian)

* New translations setuptypes.md (Ukrainian)

* New translations setuptypes.md (Chinese Simplified)

* New translations setuptypes.md (Persian)

* New translations setuptypes.md (Tamil)

* New translations setuptypes.md (Hindi)

* New translations appium.md (French)

* New translations appium.md (Belarusian)

* New translations appium.md (German)

* New translations appium.md (Japanese)

* New translations appium.md (Portuguese)

* New translations appium.md (Ukrainian)

* New translations appium.md (Tamil)

* New translations browser.md (French)

* New translations browser.md (Spanish)

* New translations browser.md (Arabic)

* New translations browser.md (Belarusian)

* New translations browser.md (Bulgarian)

* New translations browser.md (German)

* New translations browser.md (Italian)

* New translations browser.md (Japanese)

* New translations browser.md (Polish)

* New translations browser.md (Portuguese)

* New translations browser.md (Russian)

* New translations browser.md (Ukrainian)

* New translations browser.md (Chinese Simplified)

* New translations browser.md (Persian)

* New translations browser.md (Tamil)

* New translations browser.md (Hindi)

* New translations protocols.md (French)

* New translations vue.md (French)

* New translations protocols.md (Spanish)

* New translations vue.md (Spanish)

* New translations protocols.md (Arabic)

* New translations vue.md (Arabic)

* New translations frameworks.md (Belarusian)

* New translations protocols.md (Belarusian)

* New translations vue.md (Belarusian)

* New translations protocols.md (Bulgarian)

* New translations vue.md (Bulgarian)

* New translations protocols.md (German)

* New translations vue.md (German)

* New translations protocols.md (Italian)

* New translations vue.md (Italian)

* New translations protocols.md (Japanese)

* New translations vue.md (Japanese)

* New translations protocols.md (Polish)

* New translations vue.md (Polish)

* New translations frameworks.md (Portuguese)

* New translations protocols.md (Portuguese)

* New translations vue.md (Portuguese)

* New translations protocols.md (Russian)

* New translations vue.md (Russian)

* New translations protocols.md (Ukrainian)

* New translations vue.md (Ukrainian)

* New translations protocols.md (Chinese Simplified)

* New translations vue.md (Chinese Simplified)

* New translations protocols.md (Persian)

* New translations vue.md (Persian)

* New translations protocols.md (Tamil)

* New translations vue.md (Tamil)

* New translations protocols.md (Hindi)

* New translations vue.md (Hindi)

* New translations customreporter.md (Belarusian)

* New translations customreporter.md (Portuguese)

* New translations configuration.md (Belarusian)

* New translations configuration.md (Portuguese)

* New translations sharding.md (French)

* New translations sharding.md (Spanish)

* New translations sharding.md (Arabic)

* New translations vscodeextension.md (Belarusian)

* New translations sharding.md (Belarusian)

* New translations sharding.md (Bulgarian)

* New translations sharding.md (German)

* New translations sharding.md (Italian)

* New translations sharding.md (Japanese)

* New translations sharding.md (Polish)

* New translations vscodeextension.md (Portuguese)

* New translations sharding.md (Portuguese)

* New translations sharding.md (Russian)

* New translations sharding.md (Ukrainian)

* New translations sharding.md (Chinese Simplified)

* New translations sharding.md (Persian)

* New translations sharding.md (Tamil)

* New translations sharding.md (Hindi)

* New translations code.json (Portuguese, Brazilian)

* New translations options.json (Portuguese, Brazilian)

* New translations current.json (Portuguese, Brazilian)

* New translations current.json (Portuguese, Brazilian)

* New translations footer.json (Portuguese, Brazilian)

* New translations navbar.json (Portuguese, Brazilian)

* New translations api.md (Portuguese, Brazilian)

* New translations axecore.md (Portuguese, Brazilian)

* New translations autowait.md (Portuguese, Brazilian)

* New translations autocompletion.md (Portuguese, Brazilian)

* New translations automationprotocols.md (Portuguese, Brazilian)

* New translations watchfiles.md (Portuguese, Brazilian)

* New translations whywebdriverio.md (Portuguese, Brazilian)

* New translations browser.md (Portuguese, Brazilian)

* New translations createlocalworkerprocess.md (Portuguese, Brazilian)

* New translations donate.md (Portuguese, Brazilian)

* New translations materials.md (Portuguese, Brazilian)

* New translations openofficehours.md (Portuguese, Brazilian)

* New translations support.md (Portuguese, Brazilian)

* New translations team.md (Portuguese, Brazilian)

* New translations appium.md (Portuguese, Brazilian)

* New translations emulation.md (Portuguese, Brazilian)

* New translations visualtesting.md (Portuguese, Brazilian)

* New translations method-options.md (Portuguese, Brazilian)

* New translations methods.md (Portuguese, Brazilian)

* New translations writing-tests.md (Portuguese, Brazilian)

* New translations snapshot.md (Portuguese, Brazilian)

* New translations filedownloads.md (Portuguese, Brazilian)

* New translations events.md (Portuguese, Brazilian)

* New translations percy-overview.md (Portuguese, Brazilian)

* New translations integrate-with-app-percy.md (Portuguese, Brazilian)

* New translations integrate-with-percy.md (Portuguese, Brazilian)

* New translations browserstack.md (Portuguese, Brazilian)

* New translations clock.md (Portuguese, Brazilian)

* New translations argos.md (Portuguese, Brazilian)

* New translations seleniumgrid.md (Portuguese, Brazilian)

* New translations browserlogs.md (Portuguese, Brazilian)

* New translations axecore.md (Portuguese, Brazilian)

* New translations donate.md (Portuguese, Brazilian)

* New translations materials.md (Portuguese, Brazilian)

* New translations openofficehours.md (Portuguese, Brazilian)

* New translations support.md (Portuguese, Brazilian)

* New translations team.md (Portuguese, Brazilian)

* New translations events.md (Portuguese, Brazilian)

* New translations browserstack.md (Portuguese, Brazilian)

* New translations browser.md (Portuguese, Brazilian)

* New translations element.md (Portuguese, Brazilian)

* New translations environment.md (Portuguese, Brazilian)

* New translations events.md (Portuguese, Brazilian)

* New translations clock.md (Portuguese, Brazilian)

* New translations dialog.md (Portuguese, Brazilian)

* New translations globals.md (Portuguese, Brazilian)

* New translations axecore.md (Portuguese, Brazilian)

* New translations browser.md (Portuguese, Brazilian)

* New translations element.md (Portuguese, Brazilian)

* New translations globals.md (Portuguese, Brazilian)

* New translations mock.md (Portuguese, Brazilian)

* New translations modules.md (Portuguese, Brazilian)

* New translations protocols.md (Portuguese, Brazilian)

* New translations lit.md (Portuguese, Brazilian)

* New translations preact.md (Portuguese, Brazilian)

* New translations react.md (Portuguese, Brazilian)

* New translations solid.md (Portuguese, Brazilian)

* New translations svelte.md (Portuguese, Brazilian)

* New translations vue.md (Portuguese, Brazilian)

* New translations coverage.md (Portuguese, Brazilian)

* New translations mocking.md (Portuguese, Brazilian)

* New translations donate.md (Portuguese, Brazilian)

* New translations materials.md (Portuguese, Brazilian)

* New translations openofficehours.md (Portuguese, Brazilian)

* New translations support.md (Portuguese, Brazilian)

* New translations team.md (Portuguese, Brazilian)

* New translations stencil.md (Portuguese, Brazilian)

* New translations filedownloads.md (Portuguese, Brazilian)

* New translations events.md (Portuguese, Brazilian)

* New translations browserstack.md (Portuguese, Brazilian)

* New translations clock.md (Portuguese, Brazilian)

* New translations dialog.md (Portuguese, Brazilian)

* New translations mobile.md (Portuguese, Brazilian)

* New translations browserlogs.md (Portuguese, Brazilian)

* New translations createlocalworkerprocess.md (Portuguese, Brazilian)

* New translations highleveloverview.md (Portuguese, Brazilian)

* New translations testexecution.md (Portuguese, Brazilian)

* New translations wdiocommands.md (Portuguese, Brazilian)

* New translations webextension.md (Portuguese, Brazilian)

* New translations vscodeextension.md (Portuguese, Brazilian)

* New translations electron.md (Portuguese, Brazilian)

* New translations macos.md (Portuguese, Brazilian)

* New translations windows.md (Portuguese, Brazilian)

* New translations cli-wizard.md (Portuguese, Brazilian)

* New translations getting-started.md (Portuguese, Brazilian)

* New translations more-test-optimization.md (Portuguese, Brazilian)

* New translations ocr-click-on-text.md (Portuguese, Brazilian)

* New translations ocr-click-on-text.md (Portuguese, Brazilian)

* New translations ocr-faq.md (Portuguese, Brazilian)

* New translations ocr-get-element-position-by-text.md (Portuguese, Brazilian)

* New translations ocr-get-text.md (Portuguese, Brazilian)

* New translations ocr-set-value.md (Portuguese, Brazilian)

* New translations materials.md (Portuguese, Brazilian)

* New translations considerations.md (Portuguese, Brazilian)

* New translations compare-options.md (Portuguese, Brazilian)

* New translations faq.md (Portuguese, Brazilian)

* New translations integrate-with-app-percy.md (Portuguese, Brazilian)

* New translations ocr-wait-for-text-displayed.md (Portuguese, Brazilian)

* New translations what-is-wdio-ocr-service.md (Portuguese, Brazilian)

* New translations argos.md (Portuguese, Brazilian)

* New translations integrate-with-percy.md (Portuguese, Brazilian)

* New translations method-options.md (Portuguese, Brazilian)

* New translations whywebdriverio.md (Portuguese, Brazilian)

* New translations api.md (Portuguese, Brazilian)

* New translations frameworks.md (Portuguese, Brazilian)

* New translations gettingstarted.md (Portuguese, Brazilian)

* New translations selectors.md (Portuguese, Brazilian)

* New translations sponsor.md (Portuguese, Brazilian)

* update: translate doc to pt-br (#14388)

* New translations configuration.md (Portuguese, Brazilian)

* more german translations

---------

Co-authored-by: Lucas Barbosa <29305833+lucasbarbosaz@users.noreply.github.com>
2025-04-08 11:09:20 -07:00

5.6 KiB

id title
protocols Protocol Commands

WebdriverIO is an automation framework that relies on various of automation protocols to control a remote agent, e.g. for a browser, mobile device or television. Based on the remote device different protocols come into play. These commands are assigned to the Browser or Element Object depending on the session information by the remote server (e.g. browser driver).

Internally WebdriverIO uses protocol commands for almost all interactions with the remote agent. However additional commands assigned to the Browser or Element Object simplify the usage of WebdriverIO, e.g. getting the text of an element using protocol commands would look like this:

const searchInput = await browser.findElement('css selector', '#lst-ib')
await client.getElementText(searchInput['element-6066-11e4-a52e-4f735466cecf'])

Using the convenient commands of the Browser or Element Object this can be reduced to:

$('#lst-ib').getText()

The following section explain each individual protocol.

WebDriver Protocol

The WebDriver protocol is a web standard for automating browser. As oppose to some other E2E tools it guarantees that automation can be done on actual browser that are used by your users, e.g. Firefox, Safari and Chrome and Chromium based browser like Edge, and not only on browser engines, e.g. WebKit, which are very different.

The advantage of using the WebDriver protocol as oppose to debugging protocols like Chrome DevTools is that you have a specific set of commands that allow to interact with the browser the same way across all browser which reduces the likelihood for flakiness. Furthermore offers this protocol abilities for massive scalability by using cloud vendors such as Sauce Labs, BrowserStack and others.

WebDriver Bidi Protocol

The WebDriver Bidi protocol is the second generation of the protocol and is currently being worked on by most browser vendors. Compared to its pre-predecessor the protocol supports a bi-directional communication (hence "Bidi") between the framework and the remote device. It furthermore introduces additional primitives for better browser introspection to better automate modern web applications in browser.

Given this protocol is currently work in progress more features will be added over time and supported by browser. If you use WebdriverIOs convenient commands nothing will change for you. WebdriverIO will make use of these new protocol capabilities as soon as they are available and supported in the browser.

Appium

The Appium project provides capabilities to automate mobile, desktop and all other kinds of IoT devices. While WebDriver focuses on browser and the web, the vision of Appium is to use the same approach but for any arbitrary device. In addition to the commands that WebDriver defines, it has special commands that often are specific to the remote device that is being automated. For mobile testing scenarios this is ideal when you want to write and run the same tests for both Android and iOS applications.

According to Appium documentation it was designed to meet mobile automation needs according to a philosophy outlined by the following four tenets:

  • You shouldn't have to recompile your app or modify it in any way in order to automate it.
  • You shouldn't be locked into a specific language or framework to write and run your tests.
  • A mobile automation framework shouldn't reinvent the wheel when it comes to automation APIs.
  • A mobile automation framework should be open source, in spirit and practice as well as in name!

Chromium

The Chromium protocol offers a super set of commands on top of the WebDriver protocol that is only supported when running automated session through Chromedriver or Edgedriver.

Firefox

The Firefox protocol offers a super set of commands on top of the WebDriver protocol that is only supported when running automated session through Geckodriver.

Sauce Labs

The Sauce Labs protocol offers a super set of commands on top of the WebDriver protocol that is only supported when running automated session using the Sauce Labs cloud.

Selenium Standalone

The Selenium Standalone protocol offers a super set of commands on top of the WebDriver protocol that is only supported when running automated session using the Selenium Grid.

JSON Wire Protocol

The JSON Wire Protocol is the pre-predecessor of the WebDriver protocol and deprecated today. While some commands might still be supported in certain environments, it is not recommended to use any of its commands.

Mobile JSON Wire Protocol

The Mobile JSON Wire Protocol is a super set of mobile commands on top of the JSON Wire Protocol. Given this one is deprecated the Mobile JSON Wire Protocol also got deprecated. Appium might still support some of its commands but it is not recommended to use them.