#[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
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.
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.
Navigation timeout
Occurs when page navigation exceeds the specified timeout. Includes the URL being navigated to and timeout duration.
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.
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.
InvalidPath(String)
Invalid path provided
Context(String, Box<Error>)
Error with additional context
Implementations§
Trait Implementations§
Source§impl Error for Error
impl Error for Error
Source§fn source(&self) -> Option<&(dyn Error + 'static)>
fn source(&self) -> Option<&(dyn Error + 'static)>
1.0.0 · Source§fn description(&self) -> &str
fn description(&self) -> &str
use the Display impl or to_string()