Metadata-Version: 2.5
Name: invisible_selenium
Version: 0.1.0
Summary: Selenium's API for a patched Firefox with a deterministic stealth profile.
Project-URL: Homepage, https://github.com/feder-cr/invisible_selenium
Project-URL: Repository, https://github.com/feder-cr/invisible_selenium
Project-URL: Changelog, https://github.com/feder-cr/invisible_selenium/blob/main/CHANGELOG.md
Author-email: feder-cr <85809106+feder-cr@users.noreply.github.com>
License-Expression: MIT AND Apache-2.0
License-File: LICENSE
License-File: LICENSE-APACHE
Keywords: anti-detect,automation,firefox,selenium,stealth,webdriver
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: Operating System :: Microsoft :: Windows
Classifier: Operating System :: POSIX :: Linux
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3.14
Classifier: Topic :: Internet :: WWW/HTTP :: Browsers
Classifier: Topic :: Software Development :: Testing
Classifier: Typing :: Typed
Requires-Python: >=3.11
Requires-Dist: invisible-core==34.31.0
Provides-Extra: dev
Requires-Dist: build>=1; extra == 'dev'
Requires-Dist: pytest-rerunfailures>=14; extra == 'dev'
Requires-Dist: pytest-timeout>=2; extra == 'dev'
Requires-Dist: pytest-xdist>=3; extra == 'dev'
Requires-Dist: pytest>=7; extra == 'dev'
Description-Content-Type: text/markdown

# invisible_selenium

Selenium's API on a patched Firefox with a deterministic stealth profile.
Change the import, keep the script.

```bash
uv venv
uv pip install invisible-selenium
uv run invisible-selenium fetch
```

Requires Python 3.11 or newer. Windows x86_64 and ARM64 (the x86_64 engine,
under Windows' own emulation), Linux x86_64 and arm64.

```python
from invisible_selenium import webdriver
from invisible_selenium.webdriver.common.by import By
from invisible_selenium.webdriver.support.ui import WebDriverWait
from invisible_selenium.webdriver.support import expected_conditions as EC

driver = webdriver.Firefox(seed=42)
driver.get("https://example.com")
WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.TAG_NAME, "a"))).click()
driver.quit()
```

```python
driver = webdriver.Firefox(
    seed=42,                        # same seed, same fingerprint
    proxy={"server": "socks5://host:1080", "username": "u", "password": "p"},
    headless=True,                  # hidden desktop, real rendering
    profile_dir="./profile",        # cookies and storage survive the run
)
```

```bash
git clone https://github.com/feder-cr/invisible_selenium && cd invisible_selenium
uv venv && uv pip install -e ".[dev]"
uv run pytest -q                      # unit
uv run pytest -q -m e2e               # against the real browser
```
