or run

npx @tessl/cli init
Log in

Version

Tile

Overview

Evals

Files

docs

browser-management.mdbrowser-managers.mdcli-interface.mdconfiguration.mddriver-management.mdindex.md
tile.json

cli-interface.mddocs/

CLI Interface

The Selenium Manager command-line interface provides comprehensive browser and driver management capabilities through a single executable.

Command Structure

selenium-manager [OPTIONS]

Core Options

struct Cli {
    /// Browser name (chrome, firefox, edge, iexplorer, safari, safaritp, or webview2)
    browser: Option<String>,
    
    /// Driver name (chromedriver, geckodriver, msedgedriver, IEDriverServer, or safaridriver)  
    driver: Option<String>,
    
    /// Selenium Grid. If version is not provided, the latest version is downloaded
    grid: Option<String>,
    
    /// Driver version (e.g., 106.0.5249.61, 0.31.0, etc.)
    driver_version: Option<String>,
    
    /// Major browser version (e.g., 105, 106, etc. Also: beta, dev, canary, nightly, esr)
    browser_version: Option<String>,
    
    /// Browser path (absolute) for browser version detection
    browser_path: Option<String>,
}

Network and Proxy Options

struct Cli {
    /// HTTP proxy for network connection (e.g., https://myproxy.net:8080)
    proxy: Option<String>,
    
    /// Timeout for network requests (in seconds)
    timeout: u64, // default: 300
    
    /// Offline mode (disabling network requests and downloads)
    offline: bool,
}

Output and Logging Options

struct Cli {
    /// Output type: LOGGER, JSON, SHELL, or MIXED
    output: String, // default: "LOGGER"
    
    /// Display DEBUG messages  
    debug: bool,
    
    /// Display TRACE messages
    trace: bool,
    
    /// Level for output messages: info, debug, trace, warn, error
    log_level: Option<String>,
}

Cache and Download Options

struct Cli {
    /// Local folder for downloaded assets [default: ~/.cache/selenium]
    cache_path: Option<String>,
    
    /// TTL (time-to-live) for discovered versions
    ttl: u64, // default: 3600
    
    /// Clear cache folder (~/.cache/selenium)
    clear_cache: bool,
    
    /// Clear metadata file (~/.cache/selenium/selenium-manager.json)
    clear_metadata: bool,
    
    /// Force to download browser (even when browser is already in the system)
    force_browser_download: bool,
    
    /// Avoid to download browser (even when browser-version is specified)
    avoid_browser_download: bool,
}

System and Platform Options

struct Cli {
    /// Operating system (windows, linux, or macos)
    os: Option<String>,
    
    /// System architecture (x32, x64, or arm64)
    arch: Option<String>,
    
    /// Mirror for driver repositories
    driver_mirror_url: Option<String>,
    
    /// Mirror for browser repositories  
    browser_mirror_url: Option<String>,
}

Advanced Options

struct Cli {
    /// Selenium language bindings (Java, JavaScript, Python, DotNet, Ruby)
    language_binding: Option<String>,
    
    /// Avoid sends usage statistics to plausible.io
    avoid_stats: bool,
    
    /// Not using drivers found in the PATH
    skip_driver_in_path: bool,
    
    /// Not using browsers found in the PATH
    skip_browser_in_path: bool,
}

Usage Examples

Basic Browser Management

# Download ChromeDriver for Chrome
selenium-manager --browser chrome

# Download GeckoDriver for Firefox with specific version
selenium-manager --browser firefox --browser-version 119

# Use specific browser path for version detection
selenium-manager --browser chrome --browser-path "/Applications/Google Chrome.app/Contents/MacOS/Google Chrome"

Driver Management

# Download specific driver version
selenium-manager --driver chromedriver --driver-version 119.0.6045.105

# Use EdgeDriver
selenium-manager --driver msedgedriver

Selenium Grid

# Download latest Selenium Grid JAR
selenium-manager --grid

# Download specific Grid version
selenium-manager --grid 4.15.0

Advanced Configuration

# Use custom cache directory
selenium-manager --browser chrome --cache-path /tmp/selenium-cache

# Enable debug output with JSON format
selenium-manager --browser firefox --output JSON --debug

# Use proxy and custom timeout
selenium-manager --browser edge --proxy https://proxy.example.com:8080 --timeout 600

# Offline mode (use cache only)
selenium-manager --browser chrome --offline

# Force download even if browser exists
selenium-manager --browser chrome --force-browser-download

Mirror Support

# Use custom driver mirror
selenium-manager --browser chrome --driver-mirror-url https://npm.taobao.org/mirrors/chromedriver/

# Use custom browser mirror
selenium-manager --browser chrome --browser-mirror-url https://registry.npmmirror.com/-/binary/chromium-browser-snapshots/

Output Formats

LOGGER (Default)

Human-readable output with log levels (INFO, WARN, DEBUG, etc.)

JSON

Structured JSON output for programmatic consumption

SHELL

Unix-like shell output format

MIXED

DEBUG/INFO to stderr, minimal JSON to stdout

Exit Codes

  • 0 (OK): Success
  • 65 (DATAERR): Input data error
  • 69 (UNAVAILABLE): Service unavailable

Configuration Files

Selenium Manager supports configuration via:

  • Environment variables with SE_ prefix
  • Configuration file: ~/.cache/selenium/se-config.toml
  • Command-line arguments (highest priority)

Error Handling

Common error scenarios and their handling:

  • Network errors: Automatically retry with backoff
  • Invalid versions: Clear error messages with available alternatives
  • Permission errors: Suggest running with appropriate permissions
  • Platform incompatibility: Clear messaging about supported platforms