mirror of
https://git.zavage.net/Zavage-Software/wabot.git
synced 2026-07-21 13:06:08 -06:00
| docs | ||
| src/wabot | ||
| tests | ||
| .gitignore | ||
| CLAUDE.md | ||
| pyproject.toml | ||
| README.md | ||
| uv.lock | ||
WABot — Web Automator Bot
Stateful Selenium browser automation for Python. Model pages as classes, drive them through one facade, and — the flagship — keep the browser alive after your process exits so another Python process can pick it up by name.
import wabot
bot = wabot.browser(session="scraper1", browser="firefox")
bot.driver.get("https://example.com/login")
# ... log in; process exits; browser stays open ...
# a different process, later:
bot = wabot.browser(session="scraper1", browser="firefox") # reattaches
Human-like pacing (random delays, randomized click positions) is on by
default; pass pacing=wabot.NoPacing() for full speed.
Development
uv sync # install everything
uv run pytest # unit tests (fast, no browsers)
uv run pytest -m integration # real headless-browser tests
uv run ruff check . && uv run ruff format --check .
uv run sphinx-build -M html docs docs/_build # docs
Docs: quickstart, persistent-sessions guide, and API reference under
docs/ (build locally with the command above).