Async Chrome DevTools
Project description
Description
Asynchronous Python library for Chrome DevTools.
Install
pip install git+git://github.com/codedumps/async-chrome-dev-tools.git
Chrome Debugging Mode
Launch Chrome instance with argument --remote-debugging-port:
$ google-chrome-stable --remote-debugging-port=9222
Instead of Chrome you can use Chronium.
Usage
import asyncio
from ChromeDevTools import ChromeDevTools
async def run():
chrome = ChromeDevTools()
tab = await chrome.new_tab('http://linux.org.ru')
rpc = await chrome.connect_tab(tab['webSocketDebuggerUrl'])
...
asyncio.get_event_loop().run_until_complete(run())
API
Инстанс Chrome принимает команды по http и через вебсокеты. По http мы можем управлять табами. Чтобы получить исходный код страницы, выполнить JavaScript на ней, перехватить запросы и т.д., нужно подключиться к табу через вебсокеты, а затем отправить команду через jsonrpc. Вызов jsonrpc-методов реализован с помощью обращения к несуществующим атрибутам объектов. Например, вызов метода Page.captureScreenshot будет выглядеть так:
response = await rpc.page.capture_screenshot(format='png', quality=100)
print(response.result.data)
Общий вид вызова метода:
rpc.domain.method(params_dict, param1=value1, param2=value2, ...)
Первая буква имени домена переводится в верхний регистр, имя метода из under_score транслируется в camelCase.
Не все методы API предполагают возвращение ответа. К имени таких методов нужно добавлять окончание _nowait. Пример для Network.enable:
await rpc.network.enable_nowait()
async for event in rpc:
# Обрабатываем события
Tests
pytest tests -s
Links
- Chrome DevTools – общая ифнормация;
- Chrome DevTools Protocol – список методов, доступных для вызова через jsonrpc
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
File details
Details for the file ChromeDevTools-0.2.6.tar.gz.
File metadata
- Download URL: ChromeDevTools-0.2.6.tar.gz
- Upload date:
- Size: 6.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.21.0 setuptools/40.6.2 requests-toolbelt/0.9.1 tqdm/4.31.1 CPython/3.7.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d949af21fa74b00d8b0dd443a6915cd0be3cf01d77323263803f96fdec24e578
|
|
| MD5 |
9f108b2fc0dbd7feabc985b9233d51d9
|
|
| BLAKE2b-256 |
fb1bfbcef1ac5ebaecfc48998599784d61ec8da7a951cd469bed6fdbbac7a747
|