PlaywrightServer

Struct PlaywrightServer 

Source
pub struct PlaywrightServer {
    pub process: Child,
}
Expand description

Manages the Playwright server process lifecycle

The PlaywrightServer wraps a Node.js child process that runs the Playwright driver. It communicates with the server via stdio pipes using JSON-RPC protocol.

§Example

let server = PlaywrightServer::launch().await?;
// Use the server...
server.shutdown().await?;

Fields§

§process: Child

The Playwright server child process

This is public to allow integration tests to access stdin/stdout pipes. In production code, you should use the Connection layer instead of accessing the process directly.

Implementations§

Source§

impl PlaywrightServer

Source

pub async fn launch() -> Result<Self>

Launch the Playwright server process

This will:

  1. Check if the Playwright driver exists (download if needed)
  2. Launch the server using node <driver>/cli.js run-driver
  3. Set environment variable PW_LANG_NAME=rust
§Errors

Returns Error::ServerNotFound if the driver cannot be located. Returns Error::LaunchFailed if the process fails to start.

See: https://playwright.dev/docs/api

Source

pub async fn shutdown(self) -> Result<()>

Shut down the server gracefully

Sends a shutdown signal to the server and waits for it to exit.

§Platform-Specific Behavior

Windows: Explicitly closes stdio pipes before killing the process to avoid hangs. On Windows, tokio uses a blocking threadpool for child process stdio, and failing to close pipes before terminating can cause the cleanup to hang indefinitely. Uses a timeout to prevent permanent hangs.

Unix: Uses standard process termination with graceful wait.

§Errors

Returns an error if the shutdown fails or times out.

Source

pub async fn kill(self) -> Result<()>

Force kill the server process

This should only be used if graceful shutdown fails.

§Platform-Specific Behavior

Windows: Closes stdio pipes before killing to prevent hangs.

Unix: Standard force kill operation.

§Errors

Returns an error if the kill operation fails.

Trait Implementations§

Source§

impl Debug for PlaywrightServer

Source§

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

Formats the value using the given formatter. Read more

Auto Trait Implementations§

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, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

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

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

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