Table of Contents

Namespace WebDriverBiDi

Classes

BiDiDriver

Object containing commands to drive a browser using the WebDriver BiDi protocol.

CommandParameters

Abstract base class for a set of settings for a command.

CommandParameters<T>

Represents data for a WebDriver BiDi command where the response type is known.

CommandResult

Data received from a response.

EmptyResult

Represents an empty result from a command.

ErrorResult

Object containing an error response to a command.

EventDataCollector<T>

Specialized observer of an event that collects event data each time the event is raised, for on-demand batch inspection or async streaming rather than immediate per-event reaction.

EventHandlerErrorOccurredEventArgs

Provides data for the event raised when an error occurs in an observer of an observable event. This event is for diagnostic and observability purposes, and does not prevent the propagation of the error back to the Transport class.

EventInfo<T>

Class containing information used in the invocation of an event invoker.

EventObserverErrorInfo

Describes a failure raised by an observable event observer.

EventObserver<T>

Implementation of an observer in the Observer pattern for events.

LogMessageEventArgs

Object containing event data for events raised when a log message is received from a WebDriver BiDi connection.

Module

Base class representing a module in the WebDriver BiDi protocol.

ObservableEventExtensions

Extension methods for ObservableEvent<T>.

ObservableEventInvocable<T>

Producer-side implementation of a subject in the Observer pattern for events, allowing a producer to notify observers.

ObservableEventNameAttribute

Marks an ObservableEvent<T> property with its event name string so that Roslyn analyzers can read the name from compiled metadata as well as from source.

ObservableEventSubscription<T>

The handle for a subscription created by calling Subscribe(IObserver<T>) on the IObservable<T> that ToObservable<T>(ObservableEvent<T>) returns. Disposing the handle ends the subscription; CompletionTask reports when delivery to the observer has ended.

ObservableEvent<T>

Implementation of a subject in the Observer pattern for events. It can optionally be limited to a specific number of observers.

ReceivedDataDictionary

A read-only dictionary containing a dictionary of additional data from a command result. The proper workflow for this class is that additional data is received from the protocol as a dictionary with string keys, and object values. The entries in that dictionary are then intentionally mutated to be read-only, so that they cannot be updated by the user.

ReceivedDataList

A read-only list containing a list of additional data from a command result.

SpecRangeAttribute

Marks a command-parameter property with the numeric range the WebDriver BiDi specification defines for its value, so that Roslyn analyzers can read the range from compiled metadata as well as from source.

StringEnumNullSentinelValueAttribute<T>

Marks an enumerated type with string values with the enumerated value to use to signal a null should be written to the JSON serialization.

StringEnumUnmatchedValueAttribute<T>

Marks an enumerated type with string values with the enumerated value to be used if the serialized value does not match one of the enumerated values.

StringEnumValueAttribute

Marks a specific enumerated value with its string representation.

StringEnumValueConverter<T>

Converter for enumerated types that are represented as strings in JSON. This converter supports the use of the StringEnumValueAttribute to specify custom string values for enumerated values, and the StringEnumUnmatchedValueAttribute<T> to specify a default value if the supplied string does not match any of the enumerated values.

WebDriverBiDiCommandException

The exception thrown when a WebDriver BiDi protocol command returns an error response.

WebDriverBiDiConnectionException

The exception thrown when a WebDriver BiDi connection error occurs.

WebDriverBiDiErrorResponseException

Abstract base class for exceptions that carry a structured ErrorResult received from the remote end of the WebDriver BiDi protocol. Subclasses distinguish between command-level errors (see WebDriverBiDiCommandException) and unsolicited protocol-level errors (see WebDriverBiDiProtocolException).

WebDriverBiDiEventArgs

Base EventArgs class for use with WebDriver BiDi events.

WebDriverBiDiEventSource

EventSource for WebDriver BiDi protocol instrumentation. This EventSource provides structured diagnostic events for monitoring, tracing, and troubleshooting WebDriver BiDi operations.

WebDriverBiDiException

The base exception class for all WebDriver BiDi errors.

WebDriverBiDiProtocolException

The exception thrown when the remote end of the WebDriver BiDi protocol sends an error response that is not associated with a specific command (i.e., an unsolicited error).

WebDriverBiDiSerializationException

The exception thrown when a JSON serialization or deserialization error occurs while processing a WebDriver BiDi protocol message.

WebDriverBiDiTimeoutException

The exception thrown when a WebDriver BiDi operation exceeds its timeout.

Interfaces

IBiDiDriverConfiguration

Interface for configuring a WebDriver BiDi driver. This interface is implemented by BiDiDriver and can be used for testing, or to allow users to implement their own driver classes. It provides methods for registering modules and JSON type info resolvers. Event registration is not part of this interface; it is declared on IBiDiModuleHost, because a custom module registers its events through the module host it is constructed with.

IBiDiDriverEvents

Interface for a driver that exposes events related to WebDriver BiDi protocol communication. This interface is implemented by BiDiDriver and can be used for testing, or to allow users to implement their own driver classes. It provides observable events for protocol events, errors received, unknown messages, errors in observers, log messages, and the loss of the connection.

IBiDiDriverLifecycleManager

Interface for a driver that manages its lifecycle, including starting and stopping the driver. This interface is implemented by BiDiDriver and can be used for testing, or to allow users to implement their own driver classes. It extends IAsyncDisposable to allow for proper asynchronous disposal of resources.

IBiDiModuleHost

Interface for a driver that executes commands and registers events for use with the WebDriver BiDi protocol. This interface is implemented by BiDiDriver and can be used for testing, or to allow users to implement their own driver classes.

IEventObserverErrorReporter

Provides a sink for observer failures that happen after an event handler has already returned control to the caller.

Enums

ErrorCode

Enumeration of error codes that may be returned by the remote end of the WebDriver BiDi protocol in error responses to commands or in unsolicited error events. Each value is associated with the string value used in the JSON error responses.

ObservableEventHandlerOptions

Enumerated value describing options for the execution of a handler for an ObservableEvent.

WebDriverBiDiLogLevel

Represents log levels for the WebDriver BiDi protocol.