1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
//! ferridriver -- High-performance browser automation library.
//!
//! Provides a Playwright-compatible API for browser automation across
//! multiple backends (CDP WebSocket, CDP Pipes, native `WebKit`).
//!
//! # Quick Start
//!
//! ```ignore
//! use ferridriver::{Browser, Page};
//! use ferridriver::options::RoleOptions;
//!
//! let browser = Browser::launch().await?;
//! let page = browser.new_page_with_url("https://example.com").await?;
//!
//! // Playwright-style locators
//! page.get_by_role("link", RoleOptions { name: Some("More".into()), ..Default::default() })
//! .click().await?;
//!
//! // Content extraction
//! let title = page.title().await?;
//! let md = page.markdown().await?;
//! ```
// ── Public API (Playwright-compatible) ──
pub use Browser;
pub use ;
pub use ;
pub use Frame;
pub use ;
pub use Page;
// ── Public lower-level modules (needed by MCP server and consumers) ──
// ── Browser installation ──
// ── Implementation modules (used by MCP server, will be internalized) ──
// ── BDD steps (use crate-internal APIs) ──