chrobot_extra/session

Session persistence module for saving and restoring browser session state. Provides functionality similar to Playwright’s storageState API.

Usage:

// Save session
let assert Ok(state) = session.save(page)
let assert Ok(Nil) = session.save_to_file(state, "session.json")

// Restore session
let assert Ok(state) = session.load_from_file("session.json")
let assert Ok(Nil) = session.restore(page, state)

Types

Storage data for a single origin.

pub type OriginStorage {
  OriginStorage(
    origin: String,
    local_storage: List(StorageEntry),
    session_storage: List(StorageEntry),
  )
}

Constructors

Errors that can occur during session operations.

pub type SessionError {
  FileError(simplifile.FileError)
  JsonError
  BrowserError(chrome.RequestError)
}

Constructors

Session state containing cookies and per-origin storage data.

pub type SessionState {
  SessionState(
    cookies: List(network.Cookie),
    origins: List(OriginStorage),
  )
}

Constructors

A key-value storage entry.

pub type StorageEntry {
  StorageEntry(name: String, value: String)
}

Constructors

  • StorageEntry(name: String, value: String)

Values

pub fn load_from_file(
  path: String,
) -> Result(SessionState, SessionError)

Load session state from a JSON file.

pub fn restore(
  page: chrobot_extra.Page,
  state: SessionState,
) -> Result(Nil, SessionError)

Restore session state to a page (cookies + storage).

pub fn save(
  page: chrobot_extra.Page,
) -> Result(SessionState, SessionError)

Capture the current session state from a page (cookies + storage).

pub fn save_to_file(
  state: SessionState,
  path: String,
) -> Result(Nil, SessionError)

Save session state to a JSON file.

Search Document