Conventions

  • Public functions and modules use snake_case; classes use PascalCase.

  • Since version 3.0, obsolete camelCase entry points are removed rather than silently redirected.

  • Core package imports do not require Selenium, SeleniumBase, Playwright, or Camoufox. Optional providers load only when selected.

  • Browser capabilities that may not exist on every backend expose structured support information. Required unsupported operations raise typed browser errors.

  • Browser sessions, console layouts, temporary resources, observers, network clients, and similar owned resources should be closed explicitly or used as context managers.

  • Browser state probes used by browser.wait.first_of should be free of clicks, navigation, CAPTCHA solving, and other side effects. Perform the action after a match is returned.

  • Native Selenium, Playwright, and system-browser objects are escape hatches for provider-specific work; portable project logic should prefer the neutral browser facade.

  • The coordinated console selects VT, classic Win32, or stable plain output according to terminal capabilities and avoids emitting raw cursor controls to redirected streams.

  • Secrets should not be written to logs. Persistent environment-store values are masked when listed unless a caller explicitly requests their values.

  • Network and mail helpers require callers to provide appropriate authentication, certificate, timeout, and retry policies for their deployment.