Chrome Debugging Protocol client
CProto is a Debugging Protocol client that supports Chrome, Chromium and Blink based browsers.
CProto provides you an advanced interface to interact with Chrome (or another supported browser) instance from your Python code. It’s greatly useful for automated testing, debugging, profiling or even complicated page crawling.
This project is under development. More updates are coming soon.
Python 2.7 or 3.3+ is required to install CProto.
Install the latest version using pip:
$ pip install cproto
Running Chrome in Debug mode
Option 1: Run Chrome in Docker, also in Headless mode.
Option 2: Run Chrome on host machine:
# «chrome» should point to your installation of Chrome chrome --remote-debugging-port=9222 "about:blank" # If you haven't created alias for Chrome yet, you could set it on MacOS like that: # For Chrome alias chrome="/Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome" # For Chrome Canary alias chrome-canary="/Applications/Google\ Chrome\ Canary.app/Contents/MacOS/Google\ Chrome\ Canary" # For Chromium alias chromium="/Applications/Chromium.app/Contents/MacOS/Chromium"
CProto complies to official Chrome Debugging Protocol, which implicates CProto’s interface has the same API as Chrome Debugging Protocol. Consider this example:
from cproto import CProto # Print event's response and close CProto connection def on_load(response): print(response) cp.close() # Create CProto instance and connect to a browser over CDP cp = CProto(host='127.0.0.1', port=9222) # Enable Page domain events cp.Page.enable() # Adds Page callback that's fired after is loaded cp.Page.loadEventFired = on_load # Navigate browser to Github cp.Page.navigate(url='https://github.com')
In this example Page Domain API was used to navigate to any arbitrary URL. There are a whole bunch of other methods and events available for each Domain, you could browse all of them on the CDP documentation website.
- ☒ Domains support
- ☒ Methods support
- ☒ Events support
- Asynchronous I/O support using asyncio
Headless Chrome in Docker
You could use Docker to run CProto with Chrome Headless mode on any major OS via command line interface.
# Clone the repository $ git clone firstname.lastname@example.org:asyne/cproto.git # Build Docker image for Chrome Headless $ docker build -t chrome-headless cproto # Run Docker Chrome Headless mode container with port 9222 being proxied to the host machine $ docker run --rm -it --cap-add=SYS_ADMIN -p 9222:9222 chrome-headless # That's all here. Chrome Debugging interface is now up and listening for connections. # You could check it out by opening this link in your browser – http://localhost:9222.
Release history Release notifications | RSS feed
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
|Filename, size||File type||Python version||Upload date||Hashes|
|Filename, size cproto-0.7.2-py2.py3-none-any.whl (92.4 kB)||File type Wheel||Python version py2.py3||Upload date||Hashes View|
|Filename, size cproto-0.7.2.tar.gz (90.1 kB)||File type Source||Python version None||Upload date||Hashes View|
Hashes for cproto-0.7.2-py2.py3-none-any.whl