Skip to main content

pyquality 🎈

A kid-friendly, yet exceptionally powerful automation framework for Python driven directly by the Chrome DevTools Protocol (CDP).

pyquality is designed to be as simple as possible. Want to close the browser? Just call b.bye(). Want to navigate? b.go_to("https://...")

Under the hood, it retains uncompromising power. Advanced users have unfiltered access to all 40+ raw Chromium DevTools domains (DOM, Network, Page, etc.) auto-generated from the official Google spec!


🚀 Installation (Source)

If you are developing locally:

git clone https://github.com/santoshtvk-new/Pyquality.git
cd pyquality
pip install -e .

🛠️ Installation (PIP)

(When published to PyPi)

pip install pyquality

📖 Quick Start

from pyquality.browser import Browser

# 1. Start it up
b = Browser(headless=False)

# 2. Go somewhere
b.go_to("https://example.com")

# 3. Validation is easy
b.should_be_seen("h1")

# 4. Say goodbye
b.bye()

✨ The Kid-Friendly Aliases

pyquality dynamically binds methods defined in METHOD_ALIASES.yml so you can use vocabulary that makes sense to you.

Navigation

  • navigate(url) -> go_to, open_website
  • reload() -> refresh, reload_page
  • close() -> close_browser, bye
  • go_back() -> step_back, previous_page
  • go_forward() -> step_forward, next_page

Interaction

  • click_element(selector) -> click_this, tap
  • type_text(selector, text) -> type_in, write_this
  • hover_element(selector) -> point_at, hover_over

APIs & Data

  • API.get(endpoint) -> fetch_data, grab
  • API.post(endpoint, json) -> create_data, send_new

⚡ Raw CDP Power (Advanced)

If you need capabilities beyond the simple wrappers, pyquality has raw auto-generated bindings for EVERY CDP Domain. They are attached natively to the browser instance:

from pyquality.browser import Browser
b = Browser()

# Use raw 'Page' domain to capture a PDF
b.page.printToPDF()

# Use raw 'Network' domain to throttle connection
b.network.emulateNetworkConditions(
    offline=False, 
    latency=200, 
    downloadThroughput=1000, 
    uploadThroughput=1000
)

# Use raw 'DOM' domain to get node information
b.dom.getDocument(depth=-1)

📦 Deploying Initial PIP Package

To package this framework and upload it to PyPi:

  1. Install build tools:

    pip install build twine
    
  2. Generate Native Wrappers: Ensure your CDP protocol bindings are up-to-date:

    python src/pyquality/generate_cdp_wrappers.py
    
  3. Build wheels:

    python -m build
    

    This generates .tar.gz and .whl files in the /dist folder.

  4. Upload to PyPi (Requires Account):

    python -m twine upload dist/*
    
  5. Done! Users can now run pip install pyquality.

Metadata

Release files for py4quality 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for py4quality 0.1.0
File Size Uploaded
py4quality-0.1.0.tar.gz 68.8 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for py4quality 0.1.0
File Interpreter ABI Platform
py4quality-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 155.5 kB

Release files / py4quality-0.1.0.tar.gz

Download URL py4quality-0.1.0.tar.gz
Size 68.8 kB
Tags Source
SHA-256 checksum
How to use checksums
dec2f55d2280ae43389daeed6588c20657c99c0ac81670009fe2d66c1528713d
BLAKE2b-256 checksum
How to use checksums
80613296a33d49afde4dd124ff257ad6662a8403d89e7f94b10f801e2ad120da
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.11.2

Release files / py4quality-0.1.0-py3-none-any.whl

Download URL py4quality-0.1.0-py3-none-any.whl
Size 86.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
aa8513a8d8a415ab4990ad593e5d57c1d666562d0e0ac0144bca6fbe565df984
BLAKE2b-256 checksum
How to use checksums
3186de27119fe3e05ee22238b351f4620042a3b891f6459f2648cc4a45f08c1d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.11.2

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page