Skip to content

Commit 5fa88c6

Browse files
committed
Make add_request_handler return intercept id
1 parent 71e8852 commit 5fa88c6

File tree

1 file changed

+13
-7
lines changed

1 file changed

+13
-7
lines changed

py/selenium/webdriver/remote/network.py

Lines changed: 13 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -33,21 +33,26 @@ class Network:
3333
def __init__(self, driver):
3434
self.network = None
3535
self.driver = driver
36-
self.intercept = None
37-
self.scope = None
36+
self.scopes = {}
3837
self.conn = None
3938

40-
async def add_request_handler(self, request_filter=lambda _: True, handler=default_request_handler, conn=None):
39+
async def add_request_handler(
40+
self,
41+
request_filter=lambda _: True,
42+
handler=default_request_handler,
43+
conn=None,
44+
task_status=trio.TASK_STATUS_IGNORED
45+
):
4146
if not self.conn:
4247
self.conn = conn
4348
with trio.CancelScope() as scope:
44-
self.scope = scope
4549
self.network = network.Network(conn)
4650
params = AddInterceptParameters(["beforeRequestSent"])
4751
callback = self._callback(request_filter, handler)
4852
result = await self.network.add_intercept(event=BeforeRequestSent, params=params)
4953
intercept = result["intercept"]
50-
self.intercept = intercept
54+
self.scopes[intercept] = scope
55+
task_status.started(intercept)
5156
await self.add_listener(event=BeforeRequestSent, callback=callback)
5257
return intercept
5358

@@ -63,12 +68,13 @@ async def get(self, url, conn):
6368
params = NavigateParameters(context=self.driver.current_window_handle, url=url, wait="complete")
6469
await conn.execute(Navigate(params).cmd())
6570

66-
async def remove_request_handler(self):
71+
async def remove_request_handler(self, intercept):
6772
await self.network.remove_intercept(
6873
event=BeforeRequestSent,
6974
params=network.RemoveInterceptParameters(self.intercept),
7075
)
71-
self.scope.cancel()
76+
self.scopes[intercept].cancel()
77+
self.scopes.pop(intercept)
7278

7379
def _callback(self, request_filter, handler):
7480
async def callback(request):

0 commit comments

Comments
 (0)