Skip to main content

StealthySession

Struct StealthySession 

Source
pub struct StealthySession { /* private fields */ }
Expand description

Anti-detection browser automation session with optional Cloudflare challenge solving.

StealthySession is the stealth counterpart to DynamicSession. It uses the same Playwright infrastructure but launches Chromium with additional flags that remove automation indicators, block WebRTC IP leaks, inject canvas noise, and disable WebGL. It also includes a built-in Cloudflare Turnstile solver that detects non-interactive, managed, interactive, and embedded challenges and attempts to click through them automatically.

Implementations§

Source§

impl StealthySession

Source

pub fn new(config: StealthConfig) -> Result<Self>

Create a new StealthySession from the given configuration, validating it upfront. The browser is not launched yet – call start to do that. Returns an error if the configuration fails validation.

Source

pub async fn start(&mut self) -> Result<()>

Launch the browser with stealth flags and create the initial browser context.

This works like DynamicSession::start but additionally applies the stealth CLI flags from StealthConfig::extra_stealth_args and the full [constants::STEALTH_ARGS] list. You must call this before calling fetch.

Source

pub async fn fetch( &self, url: &str, params: Option<FetchParams>, ) -> Result<Response>

Navigate to url with stealth measures, solve challenges if enabled, and return the response.

If solve_cloudflare is enabled (either in the config or the per-request params), the Cloudflare Turnstile solver runs after navigation. The method retries up to config.base.retries times on failure.

Source

pub async fn close(&mut self) -> Result<()>

Close the browser context, browser, and Playwright driver.

This shuts down resources in reverse order: context, then browser, then driver. After calling this, is_alive returns false and any subsequent fetch calls will fail.

Source

pub fn is_alive(&self) -> bool

Returns true if the session has been started and not yet closed. Use this to guard against calling fetch on a session that has not been started or has already been shut down.

Source

pub fn pool_stats(&self) -> PoolStats

Return a snapshot of the page pool’s current statistics. See PoolStats for what is included.

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> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
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<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

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