firefox_webdriver/driver/mod.rs
1//! Firefox WebDriver driver module.
2//!
3//! This module provides the main entry point for browser automation.
4//!
5//! # Components
6//!
7//! | Type | Description |
8//! |------|-------------|
9//! | [`Driver`] | Factory for creating browser windows |
10//! | [`DriverBuilder`] | Fluent configuration builder |
11//! | [`FirefoxOptions`] | Browser launch options |
12//! | [`Profile`] | Firefox profile management |
13//! | [`ExtensionSource`] | Extension installation source |
14//!
15//! # Example
16//!
17//! ```no_run
18//! use firefox_webdriver::{Driver, Result};
19//!
20//! # async fn example() -> Result<()> {
21//! let driver = Driver::builder()
22//! .binary("/usr/bin/firefox")
23//! .extension("./extension")
24//! .build()
25//! .await?;
26//!
27//! let window = driver.window().headless().spawn().await?;
28//! let tab = window.tab();
29//!
30//! tab.goto("https://example.com").await?;
31//! # Ok(())
32//! # }
33//! ```
34
35// ============================================================================
36// Submodules
37// ============================================================================
38
39/// Static assets and HTML templates for driver initialization.
40pub mod assets;
41
42/// Fluent builder pattern for driver configuration.
43pub mod builder;
44
45/// Core driver implementation.
46pub mod core;
47
48/// Firefox browser options and preferences.
49pub mod options;
50
51/// Firefox profile management.
52pub mod profile;
53
54// ============================================================================
55// Re-exports
56// ============================================================================
57
58pub use builder::DriverBuilder;
59pub use core::Driver;
60pub use options::FirefoxOptions;
61pub use profile::{ExtensionSource, Profile};