Description: ## Description
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
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 | |
|---|---|---|---|
| ChromeDevTools-0.3.9.tar.gz | 6.3 kB | Details |
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
|