11from dataclasses import fields
22
33from selenium .webdriver .common .bidi import network
4- from selenium .webdriver .common .bidi .cdp import open_cdp
54from selenium .webdriver .common .bidi .network import (
65 AddInterceptParameters ,
76 BeforeRequestSent ,
@@ -15,20 +14,20 @@ def default_request_handler(params: BeforeRequestSentParameters):
1514
1615
1716class Network :
18- def __init__ (self , ws_url ):
19- self .ws_url = ws_url
17+ def __init__ (self , driver ):
2018 self .network = None
21-
22- async def add_request_handler (self , request_filter = lambda _ : True , handler = default_request_handler ):
23- async with open_cdp (self .ws_url ) as conn :
24- if not self .network :
25- self .network = network .Network (conn )
26- params = AddInterceptParameters (["beforeRequestSent" ])
27- result = await self .network .add_intercept (event = BeforeRequestSent , params = params )
28- intercept = result ["intercept" ]
29- callback = self ._callback (request_filter , handler )
30- await self .network .add_listener (BeforeRequestSent , callback )
31- return intercept
19+ self .driver = driver
20+ self .intercept = None
21+
22+ async def add_request_handler (self , request_filter = lambda _ : True , handler = default_request_handler , conn = None ):
23+ self .network = network .Network (conn )
24+ params = AddInterceptParameters (["beforeRequestSent" ])
25+ callback = self ._callback (request_filter , handler )
26+ result = await self .network .add_intercept (event = BeforeRequestSent , params = params )
27+ intercept = result ["intercept" ]
28+ self .intercept = intercept
29+ await self .network .add_listener (event = BeforeRequestSent , callback = callback )
30+ return intercept
3231
3332 def _callback (self , request_filter , handler ):
3433 async def callback (request ):
0 commit comments