pub struct OneShotSession { /* private fields */ }Expand description
Headless Chrome session owned by a single CLI invocation (or one run script).
Implementations§
Source§impl OneShotSession
impl OneShotSession
Sourcepub async fn launch_headless() -> Result<Self, CliError>
pub async fn launch_headless() -> Result<Self, CliError>
Launch local Chrome only (no connect, no daemon).
pub async fn launch_headless_with_capture( capture: CaptureOpts, ) -> Result<Self, CliError>
Sourcepub async fn launch_headless_with_proxy(
capture: CaptureOpts,
proxy_server: &str,
) -> Result<Self, CliError>
pub async fn launch_headless_with_proxy( capture: CaptureOpts, proxy_server: &str, ) -> Result<Self, CliError>
Launch headless Chrome optionally routed through a local MITM proxy (GAP-011).
Sourcepub async fn launch_with_extensions(
capture: CaptureOpts,
extensions: Vec<String>,
) -> Result<Self, CliError>
pub async fn launch_with_extensions( capture: CaptureOpts, extensions: Vec<String>, ) -> Result<Self, CliError>
Launch with Chrome extensions loaded (--load-extension).
pub fn chrome_pid(&self) -> Option<u32>
pub fn capture(&self) -> CaptureOpts
Sourcepub fn with_capture_fields(&mut self, data: Value) -> Value
pub fn with_capture_fields(&mut self, data: Value) -> Value
Merge console/network buffers into a result JSON when capture flags are on.
Sourcepub fn drain_events(&mut self)
pub fn drain_events(&mut self)
Drain pending CDP events into local buffers (non-blocking).
Sourcepub async fn pump_events(&mut self)
pub async fn pump_events(&mut self)
Drain events and ack screencast frames (required or Chrome stops sending).
Sourcepub async fn goto(
&mut self,
url: &str,
robots: RobotsPolicy,
) -> Result<Value, CliError>
pub async fn goto( &mut self, url: &str, robots: RobotsPolicy, ) -> Result<Value, CliError>
Navigate and wait for load (same process). Honors robots when policy is Honor.
Sourcepub async fn goto_with_options(
&mut self,
url: &str,
robots: RobotsPolicy,
init_script: Option<&str>,
handle_before_unload: Option<&str>,
navigation_timeout_ms: Option<u64>,
) -> Result<Value, CliError>
pub async fn goto_with_options( &mut self, url: &str, robots: RobotsPolicy, init_script: Option<&str>, handle_before_unload: Option<&str>, navigation_timeout_ms: Option<u64>, ) -> Result<Value, CliError>
Navigate with tool-ref options: init script, beforeunload, navigation timeout.
init_script is registered for the next document only and removed in finally
(parity with tool-ref navigate_page; GAP-A006).
handle_before_unload arms CDP dialog auto-accept/dismiss during navigation only
(GAP-A009 / GAP-003). It does not inject a permanent beforeunload listener.
Pass Some("accept"), Some("dismiss"), or None (off).
Sourcepub fn temp_user_data_dir(&self) -> Option<PathBuf>
pub fn temp_user_data_dir(&self) -> Option<PathBuf>
Temp Chrome profile path for ledger residual wipe.
Sourcepub async fn add_init_script(&self, source: &str) -> Result<String, CliError>
pub async fn add_init_script(&self, source: &str) -> Result<String, CliError>
Register a CDP init script for subsequent navigations in this process.
Sourcepub fn active_tab_id_string(&self) -> Option<String>
pub fn active_tab_id_string(&self) -> Option<String>
Active stable tab id (t1, …) for tool-ref get_tab_id.
Sourcepub async fn scrape(
&mut self,
url: &str,
robots: RobotsPolicy,
) -> Result<Value, CliError>
pub async fn scrape( &mut self, url: &str, robots: RobotsPolicy, ) -> Result<Value, CliError>
Navigate and capture body text + outerHTML for multi-format reformat.
Sourcepub async fn view(&mut self, verbose: bool) -> Result<Value, CliError>
pub async fn view(&mut self, verbose: bool) -> Result<Value, CliError>
Accessibility tree with agent-facing @eN refs.
pub async fn press( &mut self, target: &str, dblclick: bool, include_snapshot: bool, ) -> Result<Value, CliError>
pub async fn write( &mut self, target: &str, value: &str, include_snapshot: bool, ) -> Result<Value, CliError>
Sourcepub async fn click_at(
&mut self,
x: f64,
y: f64,
dblclick: bool,
include_snapshot: bool,
) -> Result<Value, CliError>
pub async fn click_at( &mut self, x: f64, y: f64, dblclick: bool, include_snapshot: bool, ) -> Result<Value, CliError>
Click at absolute page coordinates (requires experimental vision flag at CLI).
pub async fn keys( &mut self, key: &str, include_snapshot: bool, ) -> Result<Value, CliError>
pub async fn type_text( &mut self, target: Option<&str>, text: &str, clear: bool, submit: Option<&str>, focus_only: bool, ) -> Result<Value, CliError>
Sourcepub async fn eval_service_worker(
&mut self,
service_worker_id: &str,
expression: &str,
) -> Result<Value, CliError>
pub async fn eval_service_worker( &mut self, service_worker_id: &str, expression: &str, ) -> Result<Value, CliError>
Evaluate JS in an extension service worker by id prefix (GAP-003).
pub async fn eval( &mut self, expression: &str, args_json: Option<&str>, dialog_action: Option<&str>, file_path: Option<&Path>, ) -> Result<Value, CliError>
pub async fn wait_ms(&mut self, ms: u64) -> Result<Value, CliError>
Sourcepub async fn print_pdf(
&mut self,
path: Option<&Path>,
) -> Result<Value, CliError>
pub async fn print_pdf( &mut self, path: Option<&Path>, ) -> Result<Value, CliError>
Print the current page to PDF via CDP Page.printToPDF (one-shot artifact).
pub async fn grab( &mut self, path: Option<&Path>, format: &str, full_page: bool, quality: Option<i32>, element: Option<&str>, ) -> Result<Value, CliError>
pub async fn extract( &mut self, target: &str, attr: Option<&str>, ) -> Result<Value, CliError>
pub async fn attr( &mut self, target: &str, name: &str, ) -> Result<Value, CliError>
Sourcepub async fn text(&mut self, target: &str) -> Result<Value, CliError>
pub async fn text(&mut self, target: &str) -> Result<Value, CliError>
PRD §7 text: extract visible text from a target.
Sourcepub async fn scroll(
&mut self,
target: Option<&str>,
delta_x: f64,
delta_y: f64,
) -> Result<Value, CliError>
pub async fn scroll( &mut self, target: Option<&str>, delta_x: f64, delta_y: f64, ) -> Result<Value, CliError>
PRD §7 scroll: scroll window or element by delta pixels.
pub async fn page_info(&mut self) -> Result<Value, CliError>
pub async fn assert_url( &mut self, value: &str, contains: bool, ) -> Result<Value, CliError>
pub async fn assert_text( &mut self, value: &str, target: Option<&str>, ) -> Result<Value, CliError>
pub async fn assert_console( &mut self, level: &str, max: u64, ) -> Result<Value, CliError>
Sourcepub async fn assert_console_empty(&mut self) -> Result<Value, CliError>
pub async fn assert_console_empty(&mut self) -> Result<Value, CliError>
GAP-025: assert the captured console buffer is empty (any level).
Sourcepub async fn assert_console_no_match(
&mut self,
pattern: &str,
) -> Result<Value, CliError>
pub async fn assert_console_no_match( &mut self, pattern: &str, ) -> Result<Value, CliError>
GAP-025: assert no console message text matches pattern (substring, case-insensitive).
pub fn console_list( &mut self, page_idx: Option<usize>, page_size: Option<usize>, types: Option<&str>, include_preserved: bool, service_worker_id: Option<&str>, ) -> Result<Value, CliError>
pub fn console_get(&mut self, id: usize) -> Result<Value, CliError>
pub fn console_clear(&mut self) -> Result<Value, CliError>
pub fn console_dump(&mut self, path: &Path) -> Result<Value, CliError>
pub fn net_list( &mut self, page_idx: Option<usize>, page_size: Option<usize>, resource_types: Option<&str>, include_preserved: bool, ) -> Result<Value, CliError>
Sourcepub fn net_get(
&mut self,
id: &str,
request_path: Option<&Path>,
response_path: Option<&Path>,
) -> Result<Value, CliError>
pub fn net_get( &mut self, id: &str, request_path: Option<&Path>, response_path: Option<&Path>, ) -> Result<Value, CliError>
Resolve a network entry by 0-based index or CDP requestId string.
pub async fn dialog( &mut self, accept: bool, prompt_text: Option<&str>, ) -> Result<Value, CliError>
pub async fn hover( &mut self, target: &str, include_snapshot: bool, ) -> Result<Value, CliError>
pub async fn drag( &mut self, from: &str, to: &str, include_snapshot: bool, ) -> Result<Value, CliError>
pub async fn fill_form( &mut self, fields: &[(String, String)], include_snapshot: bool, ) -> Result<Value, CliError>
pub async fn upload( &mut self, target: &str, path: &Path, include_snapshot: bool, ) -> Result<Value, CliError>
pub async fn back(&mut self) -> Result<Value, CliError>
pub async fn forward(&mut self) -> Result<Value, CliError>
Sourcepub async fn reload_with_options(
&mut self,
ignore_cache: bool,
init_script: Option<&str>,
handle_before_unload: Option<&str>,
) -> Result<Value, CliError>
pub async fn reload_with_options( &mut self, ignore_cache: bool, init_script: Option<&str>, handle_before_unload: Option<&str>, ) -> Result<Value, CliError>
Reload via CDP Page.reload with optional ignoreCache (GAP-A005).
Optional init_script is registered for this reload only and removed after
(GAP-A006). handle_before_unload arms dialog auto-accept during reload
without injecting a permanent beforeunload listener (GAP-A009).
Sourcepub async fn reload(&mut self, ignore_cache: bool) -> Result<Value, CliError>
pub async fn reload(&mut self, ignore_cache: bool) -> Result<Value, CliError>
Reload current page via CDP Page.reload (GAP-A005).
pub async fn page_list(&mut self) -> Result<Value, CliError>
Sourcepub async fn page_new(
&mut self,
url: Option<&str>,
background: bool,
isolated_context: Option<&str>,
) -> Result<Value, CliError>
pub async fn page_new( &mut self, url: Option<&str>, background: bool, isolated_context: Option<&str>, ) -> Result<Value, CliError>
Create a page. isolated_context: None = shared; Some(name) = named isolated
BrowserContext (tool-ref isolatedContext string; GAP-004). Same name reuses context.
pub async fn page_select( &mut self, index: usize, bring_to_front: bool, ) -> Result<Value, CliError>
pub async fn page_close( &mut self, index: Option<usize>, ) -> Result<Value, CliError>
pub async fn wait_for( &mut self, ms: Option<u64>, text: Option<&str>, selector: Option<&str>, state: Option<&str>, include_snapshot: bool, ) -> Result<Value, CliError>
Sourcepub async fn wait_for_any(
&mut self,
ms: Option<u64>,
texts: &[String],
selector: Option<&str>,
state: Option<&str>,
include_snapshot: bool,
) -> Result<Value, CliError>
pub async fn wait_for_any( &mut self, ms: Option<u64>, texts: &[String], selector: Option<&str>, state: Option<&str>, include_snapshot: bool, ) -> Result<Value, CliError>
Wait until any of texts appears (OR), and/or selector/state/ms/url.
GAP-019: CSS multi-selectors (#a, #b) and selector lists are OR-matched.
GAP-024: optional url (exact) / url_contains / navigation (load lifecycle).
Sourcepub async fn wait_for_any_ex(
&mut self,
ms: Option<u64>,
texts: &[String],
selector: Option<&str>,
selectors: &[String],
state: Option<&str>,
url_exact: Option<&str>,
url_contains: Option<&str>,
navigation: bool,
include_snapshot: bool,
) -> Result<Value, CliError>
pub async fn wait_for_any_ex( &mut self, ms: Option<u64>, texts: &[String], selector: Option<&str>, selectors: &[String], state: Option<&str>, url_exact: Option<&str>, url_contains: Option<&str>, navigation: bool, include_snapshot: bool, ) -> Result<Value, CliError>
Full wait surface used by multi-step run (GAP-019/024).
Sourcepub async fn pick_option(
&mut self,
target: &str,
option: &str,
include_snapshot: bool,
) -> Result<Value, CliError>
pub async fn pick_option( &mut self, target: &str, option: &str, include_snapshot: bool, ) -> Result<Value, CliError>
Pick a custom option (HIG badge/popover / role=option). GAP-023.
pub async fn emulate( &mut self, user_agent: Option<&str>, locale: Option<&str>, timezone: Option<&str>, offline: bool, latitude: Option<f64>, longitude: Option<f64>, media: Option<&str>, network_conditions: Option<&str>, cpu_throttling_rate: Option<f64>, color_scheme: Option<&str>, extra_headers_json: Option<&str>, viewport: Option<&str>, ) -> Result<Value, CliError>
pub async fn resize( &mut self, width: i32, height: i32, scale: f64, mobile: bool, ) -> Result<Value, CliError>
pub async fn perf_start( &mut self, path: Option<&Path>, reload: bool, auto_stop: bool, ) -> Result<Value, CliError>
pub async fn perf_stop( &mut self, path: Option<&Path>, ) -> Result<Value, CliError>
pub async fn perf_insight( &mut self, name: Option<&str>, insight_set_id: Option<&str>, ) -> Result<Value, CliError>
Sourcepub fn perf_insight_file(
path: &Path,
name: Option<&str>,
) -> Result<Value, CliError>
pub fn perf_insight_file( path: &Path, name: Option<&str>, ) -> Result<Value, CliError>
Offline insight from a previously written trace path (no browser required).
pub async fn screencast_start( &mut self, path: Option<&Path>, ) -> Result<Value, CliError>
pub async fn screencast_stop( &mut self, path: Option<&Path>, ) -> Result<Value, CliError>
pub async fn heap_take(&mut self, path: &Path) -> Result<Value, CliError>
pub fn heap_file_summary(path: &Path) -> Result<Value, CliError>
pub fn heap_close(path: &Path) -> Result<Value, CliError>
pub fn heap_compare(base: &Path, current: &Path) -> Result<Value, CliError>
pub fn heap_details(path: &Path) -> Result<Value, CliError>
pub fn heap_dup_strings(path: &Path) -> Result<Value, CliError>
pub fn heap_class_nodes(path: &Path, id: u64) -> Result<Value, CliError>
pub fn heap_node_op(path: &Path, node: u64, op: &str) -> Result<Value, CliError>
Sourcepub fn heap_object_details(path: &Path, node: u64) -> Result<Value, CliError>
pub fn heap_object_details(path: &Path, node: u64) -> Result<Value, CliError>
Offline object details for one node id (distance, retained size, detachedness).
pub async fn extension_list(&mut self) -> Result<Value, CliError>
Sourcepub async fn extension_uninstall(&mut self, id: &str) -> Result<Value, CliError>
pub async fn extension_uninstall(&mut self, id: &str) -> Result<Value, CliError>
Unload extension targets in this process (GAP-007).
Sourcepub async fn extension_reload(&mut self, id: &str) -> Result<Value, CliError>
pub async fn extension_reload(&mut self, id: &str) -> Result<Value, CliError>
Reload extension service worker target by id prefix (one-shot CDP).
pub async fn extension_trigger(&mut self, id: &str) -> Result<Value, CliError>
Sourcepub async fn devtools3p_list(&mut self) -> Result<Value, CliError>
pub async fn devtools3p_list(&mut self) -> Result<Value, CliError>
Discover third-party developer tools via devtoolstooldiscovery CustomEvent.
pub async fn devtools3p_exec( &mut self, name: &str, params_json: Option<&str>, ) -> Result<Value, CliError>
Sourcepub async fn webmcp_list(&mut self) -> Result<Value, CliError>
pub async fn webmcp_list(&mut self) -> Result<Value, CliError>
List WebMCP / declarative tool forms on the page (Chrome 149+ features).
pub async fn webmcp_exec( &mut self, name: &str, input_json: Option<&str>, ) -> Result<Value, CliError>
Auto Trait Implementations§
impl !RefUnwindSafe for OneShotSession
impl !UnwindSafe for OneShotSession
impl Freeze for OneShotSession
impl Send for OneShotSession
impl Sync for OneShotSession
impl Unpin for OneShotSession
impl UnsafeUnpin for OneShotSession
Blanket Implementations§
Source§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
Source§impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
impl<A, B, T> HttpServerConnExec<A, B> for Twhere
B: Body,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more