pub struct BrowserContext { /* private fields */ }Expand description
BrowserContext represents an isolated browser session.
Contexts are isolated environments within a browser instance. Each context has its own cookies, cache, and local storage, enabling independent sessions without interference.
§Example
use playwright_rs::protocol::Playwright;
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
let playwright = Playwright::launch().await?;
let browser = playwright.chromium().launch().await?;
// Create isolated contexts
let context1 = browser.new_context().await?;
let context2 = browser.new_context().await?;
// Create pages in each context
let page1 = context1.new_page().await?;
let page2 = context2.new_page().await?;
// Cleanup
context1.close().await?;
context2.close().await?;
browser.close().await?;
Ok(())
}Implementations§
Source§impl BrowserContext
impl BrowserContext
Sourcepub fn new(
parent: Arc<dyn ChannelOwner>,
type_name: String,
guid: Arc<str>,
initializer: Value,
) -> Result<Self>
pub fn new( parent: Arc<dyn ChannelOwner>, type_name: String, guid: Arc<str>, initializer: Value, ) -> Result<Self>
Creates a new BrowserContext from protocol initialization
This is called by the object factory when the server sends a __create__ message
for a BrowserContext object.
§Arguments
parent- The parent Browser objecttype_name- The protocol type name (“BrowserContext”)guid- The unique identifier for this contextinitializer- The initialization data from the server
§Errors
Returns error if initializer is malformed
Sourcepub async fn add_init_script(&self, script: &str) -> Result<()>
pub async fn add_init_script(&self, script: &str) -> Result<()>
Adds a script which would be evaluated in one of the following scenarios:
- Whenever a page is created in the browser context or is navigated.
- Whenever a child frame is attached or navigated in any page in the browser context.
The script is evaluated after the document was created but before any of its scripts were run. This is useful to amend the JavaScript environment, e.g. to seed Math.random.
§Arguments
script- Script to be evaluated in all pages in the browser context.
§Errors
Returns error if:
- Context has been closed
- Communication with browser process fails
See: https://playwright.dev/docs/api/class-browsercontext#browser-context-add-init-script
Sourcepub async fn new_page(&self) -> Result<Page>
pub async fn new_page(&self) -> Result<Page>
Creates a new page in this browser context.
Pages are isolated tabs/windows within a context. Each page starts at “about:blank” and can be navigated independently.
§Errors
Returns error if:
- Context has been closed
- Communication with browser process fails
See: https://playwright.dev/docs/api/class-browsercontext#browser-context-new-page
Sourcepub async fn close(&self) -> Result<()>
pub async fn close(&self) -> Result<()>
Closes the browser context and all its pages.
This is a graceful operation that sends a close command to the context and waits for it to shut down properly.
§Errors
Returns error if:
- Context has already been closed
- Communication with browser process fails
See: https://playwright.dev/docs/api/class-browsercontext#browser-context-close
Trait Implementations§
Source§impl Clone for BrowserContext
impl Clone for BrowserContext
Source§fn clone(&self) -> BrowserContext
fn clone(&self) -> BrowserContext
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more