Browser

Struct Browser 

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

Browser represents a browser instance.

A Browser is created when you call BrowserType::launch(). It provides methods to create browser contexts and pages.

§Example

use playwright_core::protocol::Playwright;

#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
    let playwright = Playwright::launch().await?;
    let chromium = playwright.chromium();

    // Launch browser and get info
    let browser = chromium.launch().await?;
    println!("Browser: {} version {}", browser.name(), browser.version());

    // Create and use contexts and pages
    let context = browser.new_context().await?;
    let page = context.new_page().await?;

    // Convenience: create page directly (auto-creates default context)
    let page2 = browser.new_page().await?;

    // Cleanup
    browser.close().await?;
    Ok(())
}

See: https://playwright.dev/docs/api/class-browser

Implementations§

Source§

impl Browser

Source

pub fn new( parent: Arc<dyn ChannelOwner>, type_name: String, guid: Arc<str>, initializer: Value, ) -> Result<Browser, Error>

Creates a new Browser from protocol initialization

This is called by the object factory when the server sends a __create__ message for a Browser object.

§Arguments
  • parent - The parent BrowserType object
  • type_name - The protocol type name (“Browser”)
  • guid - The unique identifier for this browser instance
  • initializer - The initialization data from the server
§Errors

Returns error if initializer is missing required fields (version, name)

Source

pub fn version(&self) -> &str

Returns the browser version string.

See: https://playwright.dev/docs/api/class-browser#browser-version

Source

pub fn name(&self) -> &str

Returns the browser name (e.g., “chromium”, “firefox”, “webkit”).

See: https://playwright.dev/docs/api/class-browser#browser-name

Source

pub async fn new_context(&self) -> Result<BrowserContext, Error>

Creates a new browser context.

A browser context is an isolated session within the browser instance, similar to an incognito profile. Each context has its own cookies, cache, and local storage.

§Errors

Returns error if:

  • Browser has been closed
  • Communication with browser process fails

See: https://playwright.dev/docs/api/class-browser#browser-new-context

Source

pub async fn new_context_with_options( &self, options: BrowserContextOptions, ) -> Result<BrowserContext, Error>

Creates a new browser context with custom options.

A browser context is an isolated session within the browser instance, similar to an incognito profile. Each context has its own cookies, cache, and local storage.

This method allows customizing viewport, user agent, locale, timezone, and other settings.

§Errors

Returns error if:

  • Browser has been closed
  • Communication with browser process fails
  • Invalid options provided

See: https://playwright.dev/docs/api/class-browser#browser-new-context

Source

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

Creates a new page in a new browser context.

This is a convenience method that creates a default context and then creates a page in it. This is equivalent to calling browser.new_context().await?.new_page().await?.

The created context is not directly accessible, but will be cleaned up when the page is closed.

§Errors

Returns error if:

  • Browser has been closed
  • Communication with browser process fails

See: https://playwright.dev/docs/api/class-browser#browser-new-page

Source

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

Closes the browser and all of its pages (if any were opened).

This is a graceful operation that sends a close command to the browser and waits for it to shut down properly.

§Errors

Returns error if:

  • Browser has already been closed
  • Communication with browser process fails

See: https://playwright.dev/docs/api/class-browser#browser-close

Trait Implementations§

Source§

impl ChannelOwner for Browser

Source§

fn guid(&self) -> &str

Returns the unique GUID for this object. Read more
Source§

fn type_name(&self) -> &str

Returns the protocol type name (e.g., “Browser”, “Page”).
Source§

fn parent(&self) -> Option<Arc<dyn ChannelOwner>>

Returns the parent object, if any. Read more
Source§

fn connection(&self) -> Arc<dyn ConnectionLike>

Returns the connection this object belongs to.
Source§

fn initializer(&self) -> &Value

Returns the raw initializer JSON from the server. Read more
Source§

fn channel(&self) -> &Channel

Returns the channel for RPC communication.
Source§

fn dispose(&self, reason: DisposeReason)

Disposes this object and all its children. Read more
Source§

fn adopt(&self, child: Arc<dyn ChannelOwner>)

Adopts a child object (moves from old parent to this parent). Read more
Source§

fn add_child(&self, guid: Arc<str>, child: Arc<dyn ChannelOwner>)

Adds a child object to this parent’s registry. Read more
Source§

fn remove_child(&self, guid: &str)

Removes a child object from this parent’s registry. Read more
Source§

fn on_event(&self, _method: &str, _params: Value)

Handles a protocol event sent to this object. Read more
Source§

fn was_collected(&self) -> bool

Returns true if this object was garbage collected.
Source§

fn as_any(&self) -> &(dyn Any + 'static)

Enables downcasting to concrete types. Read more
Source§

impl Clone for Browser

Source§

fn clone(&self) -> Browser

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for Browser

Source§

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

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> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. 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> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
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