Skip to main content

Error

Enum Error 

Source
#[non_exhaustive]
pub enum Error {
Show 23 variants ServerNotFound, LaunchFailed(String), DriverMisconfigured(String), ServerError(String), BrowserNotInstalled { browser_name: String, message: String, playwright_version: String, }, ConnectionFailed(String), TransportError(String), ProtocolError(String), Io(Error), Json(Error), Timeout(String), NavigationTimeout { url: String, duration_ms: u64, }, TargetClosed { target_type: String, context: String, }, UnknownObjectType(String), ChannelClosed, InvalidArgument(String), ElementNotFound(String), AssertionTimeout(String), AssertionFailed(String), ObjectNotFound(String), TypeMismatch { guid: String, expected: String, actual: String, }, InvalidPath(String), Context(String, Box<Error>),
}
Expand description

Errors that can occur when using playwright-core

Variants (Non-exhaustive)§

This enum is marked as non-exhaustive
Non-exhaustive enums could have additional variants added in future. Therefore, when matching against variants of non-exhaustive enums, an extra wildcard arm must be added to account for any future variants.
§

ServerNotFound

No Playwright driver could be located

The crate’s build script normally assembles the driver at compile time. The message says what became of that driver for this build: the download failed (cargo hides a dependency’s build warnings, so this is the first place a consumer hears of it), it was skipped with PLAYWRIGHT_SKIP_DRIVER_DOWNLOAD, or it has since gone missing. It then names the ways to provide one: rebuilding, playwright-rs install, or PLAYWRIGHT_DRIVER_PATH.

§

LaunchFailed(String)

Failed to launch the Playwright server process

The Playwright server process could not be started. Common causes: Node.js not installed, insufficient permissions, or port already in use. Details: {0}

§

DriverMisconfigured(String)

A driver override environment variable is set but does not point at a usable driver

PLAYWRIGHT_DRIVER_PATH, PLAYWRIGHT_NODE_EXE, or PLAYWRIGHT_CLI_JS named a path that does not exist. The message names the variable. Unset the variable to use the bundled driver, or point it at the right path.

§

ServerError(String)

Server error (runtime issue with Playwright server)

§

BrowserNotInstalled

Browser is not installed

The specified browser has not been installed for the bundled driver. To resolve this, install browsers through the crate (version-safe), or with the one-off npx command using the exact bundled driver version.

Fields

§browser_name: String
§message: String
§playwright_version: String
§

ConnectionFailed(String)

Failed to establish connection with the server

§

TransportError(String)

Transport-level error (stdio communication)

§

ProtocolError(String)

Protocol-level error (JSON-RPC)

§

Io(Error)

I/O error

§

Json(Error)

JSON serialization/deserialization error

§

Timeout(String)

Timeout waiting for operation

Contains context about what operation timed out and the timeout duration. Common causes include slow network, server not responding, or element not becoming actionable. Consider increasing the timeout or checking if the target is accessible.

§

NavigationTimeout

Navigation timeout

Occurs when page navigation exceeds the specified timeout. Includes the URL being navigated to and timeout duration.

Fields

§duration_ms: u64
§

TargetClosed

Target was closed (browser, context, or page)

Occurs when attempting to perform an operation on a closed target. The target must be recreated before it can be used again.

Fields

§target_type: String
§context: String
§

UnknownObjectType(String)

Unknown protocol object type

§

ChannelClosed

Channel closed unexpectedly

§

InvalidArgument(String)

Invalid argument provided to method

§

ElementNotFound(String)

Element not found by selector

Includes the selector that was used to locate the element. This error typically occurs when waiting for an element times out.

§

AssertionTimeout(String)

Assertion timeout (expect API)

§

AssertionFailed(String)

Assertion failed (expect API, server returned mismatch without timeout)

§

ObjectNotFound(String)

Object not found in registry (may have been closed/disposed)

§

TypeMismatch

Type mismatch when downcasting a protocol object

Occurs when a protocol object’s concrete type does not match the expected type. This typically indicates a Playwright protocol version mismatch or a bug in the object factory.

Fields

§guid: String
§expected: String
§actual: String
§

InvalidPath(String)

Invalid path provided

§

Context(String, Box<Error>)

Error with additional context

Implementations§

Source§

impl Error

Source

pub fn context(self, msg: impl Into<String>) -> Self

Adds context to the error

Trait Implementations§

Source§

impl Debug for Error

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Display for Error

Source§

fn fmt(&self, __formatter: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Error for Error

Source§

fn source(&self) -> Option<&(dyn Error + 'static)>

Returns the lower-level source of this error, if any. Read more
1.0.0 · Source§

fn description(&self) -> &str

👎Deprecated since 1.42.0:

use the Display impl or to_string()

1.0.0 · Source§

fn cause(&self) -> Option<&dyn Error>

👎Deprecated since 1.33.0:

replaced by Error::source, which can support downcasting

Source§

fn provide<'a>(&'a self, request: &mut Request<'a>)

🔬This is a nightly-only experimental API. (error_generic_member_access)
Provides type-based access to context intended for error reports. Read more
Source§

impl From<Error> for Error

Source§

fn from(source: Error) -> Self

Converts to this type from the input type.
Source§

impl From<Error> for Error

Source§

fn from(source: Error) -> Self

Converts to this type from the input type.

Auto Trait Implementations§

§

impl !RefUnwindSafe for Error

§

impl !UnwindSafe for Error

§

impl Freeze for Error

§

impl Send for Error

§

impl Sync for Error

§

impl Unpin for Error

§

impl UnsafeUnpin for Error

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self> ⓘ

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self> ⓘ

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> ToString for T
where T: Display + ?Sized,

Source§

fn to_string(&self) -> String

Converts the given value to a String. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = !

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, !>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> ⓘ
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self> ⓘ

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more