Async Chrome DevTools
Project description
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
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.3.9.tar.gz
(6.3 kB
view details)
File details
Details for the file ChromeDevTools-0.3.9.tar.gz
.
File metadata
- Download URL: ChromeDevTools-0.3.9.tar.gz
- Upload date:
- Size: 6.3 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 | 7d225f7ca077055db699df2dc30b30ff01b5c80df1e81f33cb8bb1542986b376 |
|
MD5 | a03ce1e08d79be4ab7d98ac17e5691f1 |
|
BLAKE2b-256 | a00901d5ec909a8bf3a74830085d6f73c8397cf6b3b59b60de5bee34ad8b11a5 |