Skip to main content

WebDriver BiDi for Python — talk to any browser via W3C standard

Project description

bidiwave

WebDriver BiDi for Python — talk to any browser via W3C standard.

CI PyPI Python License

Features

  • W3C WebDriver BiDi — estándar, no CDP propietario
  • Cross-browser — Chrome, Firefox, Edge (Safari cuando soporte BiDi)
  • Async-firstasync/await nativo con asyncio
  • Event streaming — console logs, navegación, contexts en tiempo real
  • Type-safe — Pydantic v2 models, type narrowing con match
  • Sin dependencias pesadas — no requiere Selenium, no requiere Playwright

Install

pip install bidiwave

Quick start

import asyncio
from bidiwave import BiDiClient, StringValue

async def main():
    async with await BiDiClient.connect("ws://localhost:9222/session") as client:
        await client.session.new()

        async with await client.browsing.open("https://example.com") as page:
            # Evaluar JS
            result = await page.evaluate("document.title")
            match result:
                case StringValue(value=title):
                    print(f"Title: {title}")

            # Screenshot
            screenshot = await page.screenshot()
            with open("screenshot.png", "wb") as f:
                f.write(screenshot)

asyncio.run(main())

Console log monitoring

async with await BiDiClient.connect(url) as client:
    await client.session.new()

    async def on_log(entry):
        print(f"[{entry.level}] {entry.text}")

    client.on("log.entryAdded", on_log)
    await client.session.subscribe(["log.entryAdded"])

    async with await client.browsing.open("https://example.com") as page:
        await page.evaluate("console.log('hello!')")
        await asyncio.sleep(2)

Lanzar un browser con BiDi

Chrome

google-chrome --headless=new --remote-debugging-port=9222 --enable-bidi

Firefox

firefox --headless --remote-debugging-port=9223 --no-remote

Documentation

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

bidiwave-1.2.0.tar.gz (43.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

bidiwave-1.2.0-py3-none-any.whl (27.1 kB view details)

Uploaded Python 3

File details

Details for the file bidiwave-1.2.0.tar.gz.

File metadata

  • Download URL: bidiwave-1.2.0.tar.gz
  • Upload date:
  • Size: 43.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for bidiwave-1.2.0.tar.gz
Algorithm Hash digest
SHA256 fef77902eb4b4de509835fde3ba5c3365cbab0710831743b9eff141c25aef22d
MD5 6f623226f98a1d5151f03fd900d7d13a
BLAKE2b-256 56e9c8db2d3161d22d2dfc4896de7020e8c9de693993c9eaeb1bd3f17448bebd

See more details on using hashes here.

Provenance

The following attestation bundles were made for bidiwave-1.2.0.tar.gz:

Publisher: release.yml on MathiasPaulenko/bidiwave

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file bidiwave-1.2.0-py3-none-any.whl.

File metadata

  • Download URL: bidiwave-1.2.0-py3-none-any.whl
  • Upload date:
  • Size: 27.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for bidiwave-1.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 a6445e0398830f14be0dbe03e20a89bc01529cdec1c73d5530708d62ed3c1c9d
MD5 84f557795d24d7b009a04d87a7b8113a
BLAKE2b-256 93d8c2acecd45ff43c83a0c561eaf6fffe73ca0d697fdde3633df7f629d06e4c

See more details on using hashes here.

Provenance

The following attestation bundles were made for bidiwave-1.2.0-py3-none-any.whl:

Publisher: release.yml on MathiasPaulenko/bidiwave

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page