Skip to main content

LaunchOptions

Struct LaunchOptions 

Source
pub struct LaunchOptions {
Show 29 fields pub engine: EngineType, pub webdriver: WebDriverOptions, pub launch: LaunchMode, pub user_data_dir: Option<PathBuf>, pub default_browser_check: Option<bool>, pub first_run: bool, pub preferences: Value, pub local_state: Value, pub storage_state: Option<StorageStateInput>, pub headless: bool, pub slow_mo: u64, pub verbose: bool, pub restrictions: Vec<String>, pub args: Vec<String>, pub extra_args: Vec<String>, pub ignore_default_args: Vec<String>, pub ignore_all_default_args: bool, pub env: Option<HashMap<String, String>>, pub channel: Option<String>, pub executable_path: Option<PathBuf>, pub remote_debugging_port: Option<u16>, pub color_scheme: Option<ColorScheme>, pub launch_timeout: Option<Duration>, pub sandbox: bool, pub node_executable: Option<PathBuf>, pub node_working_dir: Option<PathBuf>, pub automation_parity: bool, pub fingerprint: Option<FingerprintProfile>, pub downloads: DownloadSetting,
}
Expand description

Options for launching a browser.

Fields§

§engine: EngineType

The browser engine to use.

§webdriver: WebDriverOptions

Native WebDriver driver selection and W3C capabilities. Common launch settings below override their corresponding WebDriver settings.

§launch: LaunchMode

Who starts the browser; LaunchMode::Real by default.

§user_data_dir: Option<PathBuf>

Persistent profile directory. When None a fresh temporary profile is created for the launch and deleted by LaunchResult::close.

§default_browser_check: Option<bool>

Allow the disposable browser to ask to become the system default.

§first_run: bool

Allow first-run UI in a fresh profile.

§preferences: Value

Preferences merged into Default/Preferences before launch.

§local_state: Value

Preferences merged into Local State before launch.

§storage_state: Option<StorageStateInput>

Playwright-compatible cookie and localStorage state to restore.

§headless: bool

Run in headless mode.

§slow_mo: u64

Slow down operations by this many milliseconds (default 0).

§verbose: bool

Enable verbose logging.

§restrictions: Vec<String>

Opt-in restrictions from launch-restrictions.json, such as no-extensions or the legacy-defaults preset (issue #103).

§args: Vec<String>

Additional Chrome arguments.

§extra_args: Vec<String>

Additional Chrome arguments appended after the compatibility args.

§ignore_default_args: Vec<String>

Engine default switches to omit (LaunchMode::Engine only).

§ignore_all_default_args: bool

Omit every engine default switch (LaunchMode::Engine only).

§env: Option<HashMap<String, String>>

Extra environment for the browser process only; the parent’s environment is never modified.

§channel: Option<String>

Installed browser channel, such as chrome, chrome-beta, msedge, brave or chromium.

§executable_path: Option<PathBuf>

Explicit path to a Chrome or Chromium executable.

§remote_debugging_port: Option<u16>

Fixed CDP port for the real launch; a free one is reserved when None.

§color_scheme: Option<ColorScheme>

Color scheme to emulate. None uses the system default.

§launch_timeout: Option<Duration>

Optional timeout for the browser launch handshake.

§sandbox: bool

Whether to run the browser with the Chromium sandbox enabled.

Defaults to true. Disable when running in environments where the sandbox is unavailable (e.g. CI containers without the required capabilities). This adds --no-sandbox.

§node_executable: Option<PathBuf>

Node.js executable for Playwright/Puppeteer fallback engines.

§node_working_dir: Option<PathBuf>

Working directory used to resolve Playwright/Puppeteer Node packages.

§automation_parity: bool

Keep navigator.webdriver false where a launch switch would turn it on (headless or engine launches).

Defaults to true. Set to false to launch with the engine’s own defaults, which is what the parity tests use as a negative control.

§fingerprint: Option<FingerprintProfile>

The environment pages should see: user agent, time zone, locale, core count, screen and the rest.

Applied over CDP once the browser is up, so it only works for the chromiumoxide engine; see fingerprint::profile for the field list and presets for ready-made machines.

§downloads: DownloadSetting

Manage the browser’s downloads: where they are saved, how they are named, and whether they outlive the browser.

Downloads are redirected over CDP, so this only works for the chromiumoxide engine; the other engines refuse rather than accept a setting they cannot honor. See downloads.

Implementations§

Source§

impl LaunchOptions

Source

pub fn engine(self, engine: EngineType) -> Self

Set the browser automation engine.

Source

pub fn storage_state(self, state: impl Into<StorageStateInput>) -> Self

Restore portable session state before the first caller navigation.

Source

pub fn chromiumoxide() -> Self

Create options for chromiumoxide engine.

Source

pub fn fantoccini() -> Self

Create options for fantoccini (WebDriver) engine.

Source

pub fn playwright() -> Self

Create options for Playwright through the Node.js CLI bridge.

Source

pub fn puppeteer() -> Self

Create options for Puppeteer through the Node.js CLI bridge.

Source

pub fn launch(self, launch: LaunchMode) -> Self

Choose who starts the browser.

Source

pub fn headless(self, headless: bool) -> Self

Set headless mode.

Source

pub fn user_data_dir(self, dir: impl Into<PathBuf>) -> Self

Use a persistent profile directory instead of a temporary one.

Source

pub fn slow_mo(self, ms: u64) -> Self

Set slow motion delay.

Source

pub fn verbose(self, verbose: bool) -> Self

Enable verbose logging.

Source

pub fn restrictions<I, S>(self, restrictions: I) -> Self
where I: IntoIterator<Item = S>, S: Into<String>,

Opt in to restrictions or presets from launch-restrictions.json.

Source

pub fn with_args(self, args: Vec<String>) -> Self

Add additional Chrome arguments.

Source

pub fn with_extra_args(self, args: Vec<String>) -> Self

Add Chrome arguments after the compatibility args field.

Source

pub fn ignore_default_args(self, args: Vec<String>) -> Self

Omit selected engine default switches (LaunchMode::Engine only).

Source

pub fn ignore_all_default_args(self) -> Self

Omit every engine default switch (LaunchMode::Engine only).

Source

pub fn env(self, env: HashMap<String, String>) -> Self

Extra environment for the browser process only.

Source

pub fn channel(self, channel: impl Into<String>) -> Self

Select an installed browser channel.

Source

pub fn executable_path(self, executable_path: impl Into<PathBuf>) -> Self

Select an explicit Chrome or Chromium executable.

Source

pub fn remote_debugging_port(self, port: u16) -> Self

Use a fixed CDP port for the real launch.

Source

pub fn color_scheme(self, color_scheme: ColorScheme) -> Self

Set the color scheme for media emulation.

Source

pub fn launch_timeout(self, timeout: Duration) -> Self

Override the browser launch timeout.

Source

pub fn sandbox(self, sandbox: bool) -> Self

Enable or disable the Chromium sandbox for the launched browser.

Source

pub fn node_executable(self, executable: impl Into<PathBuf>) -> Self

Override the Node.js executable used by Playwright/Puppeteer engines.

Source

pub fn node_working_dir(self, dir: impl Into<PathBuf>) -> Self

Set the directory where Node resolves playwright or puppeteer.

Source

pub fn automation_parity(self, automation_parity: bool) -> Self

Turn fingerprint parity with a hand-started Chrome on or off.

Source

pub fn fingerprint(self, fingerprint: FingerprintProfile) -> Self

Set the environment pages should see.

Source

pub fn downloads(self, downloads: impl Into<DownloadSetting>) -> Self

Manage this browser’s downloads.

§Arguments
Source

pub fn all_chrome_args(&self) -> Result<Vec<String>>

The Chrome arguments an engine launch passes: the opt-in restrictions, then args and extra_args, with repeated feature-list switches merged and, with automation parity, the AutomationControlled off switch the engine’s own switches need.

Browser Commander adds nothing else since issue #103; the old defaults are the legacy-defaults restriction preset.

§Errors

Returns an error for an unknown restriction.

Source

pub fn all_ignored_default_args(&self) -> Vec<String>

Engine default switches to suppress so the command line matches a hand-started Chrome (LaunchMode::Engine only).

Merged with the caller’s ignore_default_args, because a switch the engine appends after the caller’s arguments cannot be countered by passing a different value for it.

Source

pub fn get_user_data_dir(&self) -> PathBuf

👎Deprecated since 0.13.0:

launch_browser uses a fresh temporary profile unless user_data_dir is set; read LaunchResult::browser.user_data_dir

Get the user data directory, using a default if not specified.

Trait Implementations§

Source§

impl Clone for LaunchOptions

Source§

fn clone(&self) -> Self

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

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

Performs copy-assignment from source. Read more
Source§

impl Debug for LaunchOptions

Source§

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

Formats the value using the given formatter. Read more
Source§

impl Default for LaunchOptions

Source§

fn default() -> Self

Returns the “default value” for a type. 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<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
where ST: ?Sized, DT: ?Sized,

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> Downcast for T
where T: Any,

Source§

fn into_any(self: Box<T>) -> Box<dyn Any>

Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.
Source§

fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>

Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be further downcast into Rc<ConcreteType> where ConcreteType implements Trait.
Source§

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

Convert &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &Any’s vtable from &Trait’s.
Source§

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

Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &mut Any’s vtable from &mut Trait’s.
Source§

impl<T> DowncastSync for T
where T: Any + Send + Sync,

Source§

fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Sync + Send> ⓘ

Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be further downcast into Arc<ConcreteType> where ConcreteType implements Trait.
Source§

impl<T> ErasedDestructor for T
where T: 'static,

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> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ

Converts 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 more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
where F: FnOnce(&Self) -> bool,

Converts 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
Source§

impl<T> MaybeSendSync for T

Source§

impl<T> PolicyExt for T
where T: ?Sized,

Source§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Sized + Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow only if self and other return Action::Follow. Read more
Source§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Sized + Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow if either self or other returns Action::Follow. Read more
Source§

impl<T> Read<Exclusive, BecauseExclusive> for T
where T: ?Sized,

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
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 = !

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, !>

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<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

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