Skip to main content

Browser

Struct Browser 

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

The main stealth browser

Implementations§

Source§

impl Browser

Source

pub fn owns_process(&self) -> bool

Whether this handle owns the Chrome process, rather than borrowing it.

Source

pub async fn watch_downloads( &self, directory: &Path, ) -> Result<DownloadWatch, Error>

Reserve native download settings and subscribe before triggering a download. Only supported for owned processes. The directory must already exist.

Source

pub async fn launch() -> Result<Browser, Error>

Launch a new stealth browser with default config

Source

pub async fn launch_visible() -> Result<Browser, Error>

Launch a new stealth browser with a visible window.

Source

pub async fn launch_debug() -> Result<Browser, Error>

Launch a new visible stealth browser with debug logging behavior enabled.

Source

pub async fn launch_with( configure: impl FnOnce(&mut StealthConfig), ) -> Result<Browser, Error>

Launch with the default stealth config after applying inline changes.

This avoids constructing a full StealthConfig when only one or two options need to change.

Source

pub async fn launch_with_config(config: StealthConfig) -> Result<Browser, Error>

Launch with custom config

Source

pub async fn connect(ws_url: &str) -> Result<Browser, Error>

Connect to an existing Chrome instance at the given WebSocket CDP URL. Obtain the URL from curl http://localhost:9222/json/version or use Browser::connect_port for HTTP discovery.

Defaults to StealthConfig::live() so attaching to a user’s real browser leaves their tabs untouched (no evasion script injection, full CDP access).

Source

pub async fn connect_with_config( ws_url: &str, config: StealthConfig, ) -> Result<Browser, Error>

Connect to an existing Chrome instance with a custom config. Allows customizing CDP timeout, evasion scripts, proxy auth, etc.

Source

pub async fn connect_port(port: u16) -> Result<Browser, Error>

Discover the DevTools URL on 127.0.0.1:<port> and connect. Equivalent to curl http://127.0.0.1:<port>/json/version then Browser::connect.

Source

pub async fn connect_port_with_config( port: u16, config: StealthConfig, ) -> Result<Browser, Error>

connect_port with a custom config.

Source

pub async fn new_page(&self, url: &str) -> Result<Page, Error>

Create a new page and navigate to URL

Source

pub async fn new_blank_page(&self) -> Result<Page, Error>

Create a new page without navigation (at about:blank)

Source

pub async fn version(&self) -> Result<String, Error>

Get the browser version

Source

pub async fn tabs(&self) -> Result<Vec<TabInfo>, Error>

List all open tabs

Source

pub async fn attach_page(&self, target_id: &str) -> Result<Page, Error>

Attach to an existing browser target (e.g., a popup opened by window.open()). Use tabs() to discover popup target IDs, then call this to get a Page handle.

Source

pub async fn activate_tab(&self, target_id: &str) -> Result<(), Error>

Activate (focus) a tab by target ID

Source

pub async fn close_tab(&self, target_id: &str) -> Result<(), Error>

Close a specific tab by target ID

Source

pub async fn close(self) -> Result<(), Error>

Gracefully close an owned browser, including owned live-session launches. Attached browsers are only disconnected, regardless of configuration. Chrome has a bounded opportunity to flush state before forced termination.

Source

pub async fn disconnect(self) -> Result<(), Error>

Drop the WebSocket without sending Browser.close. Use this when connected to a user-owned browser to disconnect without killing it.

Trait Implementations§

Source§

impl Drop for Browser

Source§

fn drop(&mut self)

Executes the destructor for this type. Read more
Source§

fn pin_drop(self: Pin<&mut Self>)

🔬This is a nightly-only experimental API. (pin_ergonomics)
Execute the destructor for this type, but different to Drop::drop, it requires self to be pinned. 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> PolicyExt for T
where T: ?Sized,

Source§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Sized + Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow only if self and other return Action::Follow. Read more
Source§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Sized + Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow if either self or other returns Action::Follow. 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 = !

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