Asynchronous Python library for Chrome DevTools.
## Install
```bash
# via github
pip install git+git://github.com/codedumps/async-chrome-dev-tools.git
# via pip
pip install -U ChromeDevTools
```
## Chrome Debugging Mode
Launch Chrome instance with argument `--remote-debugging-port`:
```bash
$ google-chrome-stable --remote-debugging-port=9222
```
Instead of Chrome you can use Chronium.
## Usage
```python
import asyncio
from ChromeDevTools import ChromeDevTools
async def run():
devtools = ChromeDevTools()
tab = await devtools.new_tab('http://linux.org.ru')
...
asyncio.get_event_loop().run_until_complete(run())
```
## API
Инстанс Chrome принимает команды по http и через вебсокеты. По http мы можем управлять табами. Чтобы получить исходный код страницы, выполнить JavaScript на ней, перехватить запросы и т.д., нужно подключиться к табу через вебсокеты, а затем отправить команду через jsonrpc. Вызов jsonrpc-методов реализован с помощью обращения к несуществующим атрибутам объектов. Например, вызов метода `Page.captureScreenshot` будет выглядеть так:
```python
response = await tab.page.capture_screenshot(format='png', quality=100)
print(response.result.data)
```
Общий вид вызова метода:
```python
tab.domain.method(params_dict, param1=value1, param2=value2, ...)
```
Первая буква имени домена переводится в верхний регистр, имя метода из under_score транслируется в camelCase.
Не все методы API предполагают возвращение ответа. К имени таких методов нужно добавлять окончание `_nowait`. Пример для `Network.enable`:
```python
await tab.network.enable_nowait()
async for event in tab:
# Обрабатываем события
```
## Tests
```bash
pytest tests -s
```
## Links
* [Chrome DevTools](https://developers.google.com/web/tools/chrome-devtools/) – общая ифнормация;
* [Chrome DevTools Protocol](https://chromedevtools.github.io/devtools-protocol/) – список методов, доступных для вызова через jsonrpc
Keywords: async chrome devtools
Platform: UNKNOWN
Classifier: Development Status :: 3 - Alpha
Classifier: Framework :: AsyncIO
Classifier: Topic :: Software Development :: Debuggers
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.7
Description-Content-Type: text/markdown
Metadata
Release files for ChromeDevTools 0.3.9
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| ChromeDevTools-0.3.9.tar.gz | 6.3 kB | Without provenance | Details for ChromeDevTools-0.3.9.tar.gz |
Release files / ChromeDevTools-0.3.9.tar.gz
| Download URL | ChromeDevTools-0.3.9.tar.gz |
|---|---|
| Size | 6.3 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
7d225f7ca077055db699df2dc30b30ff01b5c80df1e81f33cb8bb1542986b376
|
|
BLAKE2b-256 checksum How to use checksums |
a00901d5ec909a8bf3a74830085d6f73c8397cf6b3b59b60de5bee34ad8b11a5
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is 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
|
Security for ChromeDevTools 0.3.9
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.