# Data flow — webdriverio/webdriverio

> Canonical page: https://codevetter.com/unpack/webdriverio/data-flow

# Data flow — webdriverio/webdriverio

Scanned commit dbf0f497130676040ce4212d9cf6459adfe16c42 (2026-10-01). Generated by codevetter codevetter 1.15.0 on 2026-10-02.

Source inspection; upstream code and tests were not executed.

Configuration is executable input that becomes launcher scheduling state and is reconstructed in each worker. Session requests transform requested capabilities into negotiated capabilities and protocol-specific client state. Element lookup preserves references and selectors so middleware can recover from missing or stale elements. Outputs cross distinct boundaries: IPC reporting, driver HTTP/WebSocket traffic, local artifact files, and optional loopback shared-store requests.
- ConfigParser.initialize loads the configuration module once, merges overrides, and applies CLI headless settings; addConfigFile extracts capabilities and hooks before deep-merging remaining configuration. — [packages/wdio-config/src/node/ConfigParser.ts#L78-L121](https://github.com/webdriverio/webdriverio/blob/dbf0f497130676040ce4212d9cf6459adfe16c42/packages/wdio-config/src/node/ConfigParser.ts#L78-L121) [packages/wdio-config/src/node/ConfigParser.ts#L128-L175](https://github.com/webdriverio/webdriverio/blob/dbf0f497130676040ce4212d9cf6459adfe16c42/packages/wdio-config/src/node/ConfigParser.ts#L128-L175)
- getSpecs resolves configured files, applies capability specs unless CLI --spec is present, combines requested suites, deduplicates, conditionally repeats, filters exclusions, and then shards. — [packages/wdio-config/src/node/ConfigParser.ts#L312-L389](https://github.com/webdriverio/webdriverio/blob/dbf0f497130676040ce4212d9cf6459adfe16c42/packages/wdio-config/src/node/ConfigParser.ts#L312-L389) [packages/wdio-config/src/node/ConfigParser.ts#L565-L574](https://github.com/webdriverio/webdriverio/blob/dbf0f497130676040ce4212d9cf6459adfe16c42/packages/wdio-config/src/node/ConfigParser.ts#L565-L574)
- Launcher structured-clones capabilities for each worker, runs onWorkerStart hooks, and passes configuration path, selected specs, credentials, execArgv, and retries to runner.run. — [packages/wdio-cli/src/launcher.ts#L569-L597](https://github.com/webdriverio/webdriverio/blob/dbf0f497130676040ce4212d9cf6459adfe16c42/packages/wdio-cli/src/launcher.ts#L569-L597)
- startWebDriverSession converts flat capabilities to alwaysMatch/firstMatch, requests BiDi except for enforced Classic or Safari, normalizes overlaps, sends POST /session, and writes negotiated capabilities back to params. — [packages/webdriver/src/utils.ts#L61-L102](https://github.com/webdriverio/webdriverio/blob/dbf0f497130676040ce4212d9cf6459adfe16c42/packages/webdriver/src/utils.ts#L61-L102) [packages/webdriver/src/utils.ts#L108-L149](https://github.com/webdriverio/webdriverio/blob/dbf0f497130676040ce4212d9cf6459adfe16c42/packages/webdriver/src/utils.ts#L108-L149) [packages/webdriver/src/utils.ts#L153-L174](https://github.com/webdriverio/webdriverio/blob/dbf0f497130676040ce4212d9cf6459adfe16c42/packages/webdriver/src/utils.ts#L153-L174)
- Protocol command wrappers validate arguments, encode endpoint variables, construct an unmasked request body, produce masked event/log payloads, and delegate execution to environment.value.Request. — [packages/webdriver/src/command.ts#L78-L140](https://github.com/webdriverio/webdriverio/blob/dbf0f497130676040ce4212d9cf6459adfe16c42/packages/webdriver/src/command.ts#L78-L140) [packages/webdriver/src/command.ts#L151-L175](https://github.com/webdriverio/webdriverio/blob/dbf0f497130676040ce4212d9cf6459adfe16c42/packages/webdriver/src/command.ts#L151-L175)
- getElement converts protocol references into client objects containing elementId, selector, parent, and optional BiDi locator; the element command wrapper uses these fields for waiting and stale-reference recovery. — [packages/webdriverio/src/utils/getElementObject.ts#L43-L101](https://github.com/webdriverio/webdriverio/blob/dbf0f497130676040ce4212d9cf6459adfe16c42/packages/webdriverio/src/utils/getElementObject.ts#L43-L101) [packages/webdriverio/src/middlewares.ts#L23-L73](https://github.com/webdriverio/webdriverio/blob/dbf0f497130676040ce4212d9cf6459adfe16c42/packages/webdriverio/src/middlewares.ts#L23-L73)
- Worker browser command/result events become reporter events; BaseReporter fans out events, sends output through IPC when available, and shutdown waits for reporter synchronization before emitting exit. — [packages/wdio-runner/src/index.ts#L347-L358](https://github.com/webdriverio/webdriverio/blob/dbf0f497130676040ce4212d9cf6459adfe16c42/packages/wdio-runner/src/index.ts#L347-L358) [packages/wdio-runner/src/reporter.ts#L79-L99](https://github.com/webdriverio/webdriverio/blob/dbf0f497130676040ce4212d9cf6459adfe16c42/packages/wdio-runner/src/reporter.ts#L79-L99) [packages/wdio-runner/src/reporter.ts#L161-L198](https://github.com/webdriverio/webdriverio/blob/dbf0f497130676040ce4212d9cf6459adfe16c42/packages/wdio-runner/src/reporter.ts#L161-L198) [packages/wdio-runner/src/index.ts#L487-L499](https://github.com/webdriverio/webdriverio/blob/dbf0f497130676040ce4212d9cf6459adfe16c42/packages/wdio-runner/src/index.ts#L487-L499)
- Shared-store launcher startup injects the server port into capabilities; worker service setup installs browser.sharedStore, whose client serializes JSON over loopback HTTP into an object store or resource-pool Map. — [packages/wdio-shared-store-service/src/launcher.ts#L15-L40](https://github.com/webdriverio/webdriverio/blob/dbf0f497130676040ce4212d9cf6459adfe16c42/packages/wdio-shared-store-service/src/launcher.ts#L15-L40) [packages/wdio-shared-store-service/src/service.ts#L11-L39](https://github.com/webdriverio/webdriverio/blob/dbf0f497130676040ce4212d9cf6459adfe16c42/packages/wdio-shared-store-service/src/service.ts#L11-L39) [packages/wdio-shared-store-service/src/client.ts#L14-L56](https://github.com/webdriverio/webdriverio/blob/dbf0f497130676040ce4212d9cf6459adfe16c42/packages/wdio-shared-store-service/src/client.ts#L14-L56) [packages/wdio-shared-store-service/src/server.ts#L7-L8](https://github.com/webdriverio/webdriverio/blob/dbf0f497130676040ce4212d9cf6459adfe16c42/packages/wdio-shared-store-service/src/server.ts#L7-L8)

Every claim links to its cited files at the pinned commit. Citations identify source evidence; they do not establish runtime correctness. Independent CodeVetter scan — not reviewed by upstream maintainers.

## Public product links

- [CodeVetter](https://codevetter.com/)
- [Download](https://codevetter.com/download)
- [Documentation](https://codevetter.com/docs/)
- [Source](https://github.com/Codevetter/codevetter)
