- Handle Chrome-Developer-Protocol connections
- Python >= 3.7
- Chrome-Browser installed
- [Windows] Install Chrome-Browser
pip install cdp-socket
from cdp_socket.utils.utils import launch_chrome, random_port
from cdp_socket.socket import CDPSocket
import os
import asyncio
async def main():
PORT = random_port()
process = launch_chrome(PORT)
async with CDPSocket(PORT) as base_socket:
targets = await base_socket.targets
sock1 = await base_socket.get_socket(targets[0])
targets = await sock1.exec("Target.getTargets")
print(targets)
os.kill(process.pid, 15)
asyncio.run(main())
from cdp_socket.utils.utils import launch_chrome, random_port
from cdp_socket.utils.conn import get_websock_url
from cdp_socket.socket import SingleCDPSocket
import os
import asyncio
async def main():
PORT = random_port()
process = launch_chrome(PORT)
websock_url = await get_websock_url(PORT, timeout=5)
async with SingleCDPSocket(websock_url, timeout=5) as sock:
targets = await sock.exec("Target.getTargets")
print(targets)
os.kill(process.pid, 15)
asyncio.run(main())
from cdp_socket.socket import SingleCDPSocket
def on_closed(code, reason):
print("Closed with: ", code, reason)
async with SingleCDPSocket(websock_url, timeout=5) as sock:
sock.on_closed.append(on_closed)
# close window for dispatching this event
targets = await sock.exec("Target.getTargets")
print(targets)
from cdp_socket.socket import SingleCDPSocket
import asyncio
def on_detached(params):
print("Detached with: ", params)
async with SingleCDPSocket(websock_url, timeout=5) as sock:
# close window for dispatching this event
sock.add_listener('Inspector.detached', on_detached)
await asyncio.sleep(1000)
from cdp_socket.socket import SingleCDPSocket
async with SingleCDPSocket(websock_url, timeout=5) as sock:
async for i in sock.method_iterator('Inspector.detached'):
print(i)
break
from cdp_socket.socket import SingleCDPSocket
async with SingleCDPSocket(websock_url, timeout=5) as sock:
res = await sock.wait_for('Inspector.detached')
print(res)
from cdp_socket.utils.utils import launch_chrome, random_port
from cdp_socket.utils.conn import get_websock_url
from cdp_socket.socket import SingleCDPSocket
import os
import asyncio
PORT = random_port()
process = launch_chrome(PORT)
loop = asyncio.get_event_loop()
websock_url = loop.run_until_complete(get_websock_url(PORT, timeout=5))
conn = loop.run_until_complete(SingleCDPSocket(websock_url, timeout=5, loop=loop))
targets = loop.run_until_complete(conn.exec("Target.getTargets"))
print(targets)
os.kill(process.pid, 15)
Please feel free to open an issue or fork!
This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.
- timeout doesn't raise in
httpx
(bug)
I am not responsible what you use the code for!!! Also no warranty!
Inspiration, code snippets, etc.
- thanks to @Redrrx who gave me some starting-points