Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/iiseymour/chromote
Simple wrapper to drive Google Chrome from Python
https://github.com/iiseymour/chromote
chrome-debugging-protocol google-chrome python
Last synced: 24 days ago
JSON representation
Simple wrapper to drive Google Chrome from Python
- Host: GitHub
- URL: https://github.com/iiseymour/chromote
- Owner: iiSeymour
- License: mit
- Created: 2014-12-10T18:09:53.000Z (almost 10 years ago)
- Default Branch: master
- Last Pushed: 2021-07-20T20:42:39.000Z (over 3 years ago)
- Last Synced: 2024-10-13T06:42:37.724Z (24 days ago)
- Topics: chrome-debugging-protocol, google-chrome, python
- Language: Python
- Size: 20.5 KB
- Stars: 317
- Watchers: 23
- Forks: 34
- Open Issues: 8
-
Metadata Files:
- Readme: README.md
- License: LICENSE.txt
Awesome Lists containing this project
README
# Chromote
Simple wrapper to drive Google Chrome from Python using the [Remote Debugging Protocol 1.2 API](https://chromedevtools.github.io/devtools-protocol/1-2)
## Installation
$ pip install chromote
## API
```python
>>> from chromote import Chromote
>>> chrome = Chromote()
>>> chrome
Chromote(host="localhost", port=9222)
>>> print chrome
[Chromote(tabs=1)]
>>> tab = chrome.tabs[0]
>>> print tab
Google - https://www.google.co.uk/
>>> print tab.url
https://www.google.co.uk/
>>> tab.reload()
'{"result":{},"id":1}'
>>> tab.set_url('https://github.com/chromote')
'{"id":2,"result":{}}'
>>> tab.set_zoom(1.2)
'{"id":1,"result":{"result":{"type":"number","value":1.2,"description":"1.2"},"wasThrown":false}}'
>>> tab.evaluate('alert("Remotey");')
```Note: Google Chrome needs starting with the `--remote-debugging-port=` option to be controlled remotely.
## Remote Browser Control
The remote debugging port binds to localhost only so using chromote with a remote
machine like a dashboard/kiosk setup will require tunneling to the machine first.On the remote machine start Google Chrome:
$ chromium-browser --incognito --kiosk --remote-debugging-port=9222
On the local machine set up a tunnel to map the remote debugging port to 9222 on localhost:
$ ssh remote-machine -L 9222:localhost:9222
You can then drive your dashboard/kiosk machine remotely to display the content you want.
```python
from time import sleep
from chromote import Chromotechrome = Chromote()
tab = chrome.tabs[0]sites = [
'https://github.com',
'http://stackoverflow.com',
]while True:
for site in sites:
tab.set_url(site)
sleep(30)
```## License
MIT Copyright (c) 2016 Chris Seymour