Async Chrome DevTools
Project description
Description: ## Description
Asynchronous Python library for Chrome DevTools.
## Install
```bash
pip install git+git://github.com/codedumps/async-chrome-dev-tools.git
```
## 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():
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` будет выглядеть так:
```python
response = await rpc.page.capture_screenshot(format='png', quality=100)
print(response.result.data)
```
Общий вид вызова метода:
```python
rpc.domain.method(params_dict, param1=value1, param2=value2, ...)
```
Первая буква имени домена переводится в верхний регистр, имя метода из under_score транслируется в camelCase.
Не все методы API предполагают возвращение ответа. К имени таких методов нужно добавлять окончание `_nowait`. Пример для `Network.enable`:
```python
await rpc.network.enable_nowait()
async for event in rpc:
# Обрабатываем события
```
## 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
pip install git+git://github.com/codedumps/async-chrome-dev-tools.git
```
## 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():
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` будет выглядеть так:
```python
response = await rpc.page.capture_screenshot(format='png', quality=100)
print(response.result.data)
```
Общий вид вызова метода:
```python
rpc.domain.method(params_dict, param1=value1, param2=value2, ...)
```
Первая буква имени домена переводится в верхний регистр, имя метода из under_score транслируется в camelCase.
Не все методы API предполагают возвращение ответа. К имени таких методов нужно добавлять окончание `_nowait`. Пример для `Network.enable`:
```python
await rpc.network.enable_nowait()
async for event in rpc:
# Обрабатываем события
```
## 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
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
ChromeDevTools-0.2.2.tar.gz
(5.6 kB
view hashes)