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
-
OriginStorage( origin: String, local_storage: List(StorageEntry), session_storage: List(StorageEntry), )
Errors that can occur during session operations.
pub type SessionError {
FileError(simplifile.FileError)
JsonError
BrowserError(chrome.RequestError)
}
Constructors
-
FileError(simplifile.FileError) -
JsonError -
BrowserError(chrome.RequestError)
Session state containing cookies and per-origin storage data.
pub type SessionState {
SessionState(
cookies: List(network.Cookie),
origins: List(OriginStorage),
)
}
Constructors
-
SessionState( cookies: List(network.Cookie), origins: List(OriginStorage), )
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.