def __init__( self, requestId: Union['RequestId', dict], request: Union['Network.Request', dict], frameId: Union['Page.FrameId', dict], resourceType: Union['Network.ResourceType', dict], responseErrorReason: Union['Network.ErrorReason', dict, None] = None, responseStatusCode: Union['int', dict, None] = None, responseHeaders: Union['[HeaderEntry]', dict, None] = None, networkId: Union['RequestId', dict, None] = None, ): if isinstance(requestId, dict): requestId = RequestId(**requestId) self.requestId = requestId if isinstance(request, dict): request = Network.Request(**request) self.request = request if isinstance(frameId, dict): frameId = Page.FrameId(**frameId) self.frameId = frameId if isinstance(resourceType, dict): resourceType = Network.ResourceType(**resourceType) self.resourceType = resourceType if isinstance(responseErrorReason, dict): responseErrorReason = Network.ErrorReason(**responseErrorReason) self.responseErrorReason = responseErrorReason if isinstance(responseStatusCode, dict): responseStatusCode = int(**responseStatusCode) self.responseStatusCode = responseStatusCode if isinstance(responseHeaders, dict): responseHeaders = [HeaderEntry](**responseHeaders) self.responseHeaders = responseHeaders if isinstance(networkId, dict): networkId = RequestId(**networkId) self.networkId = networkId
async def xtest_can_register_callback_on_devtools_event( event_loop, chrome_tab): # TODO: double check this part of the api is implemented interception_id = '3424.1' msg_id = 7 chrome_tab._message_id = msg_id - 1 fake_request = network.Request(url='http://httplib.org', method='POST', headers={}, initialPriority='superlow', referrerPolicy='origin') msgs = [ network.RequestInterceptedEvent(interceptionId=interception_id, request=fake_request, resourceType="Document", isNavigationRequest=False) ] enable = network.Network.setRequestInterceptionEnabled(enabled=True) # once emable command comes, send flurry in intercept events triggers = {msg_id: msgs} expected = queue.Queue() e0 = copy.copy(enable[0]) e0['id'] = msg_id expected.put(e0) e1 = network.Network.continueInterceptedRequest( interceptionId=interception_id) expected.put(e1) test_server = init_test_server(triggers, expected=expected) start_server = websockets.serve(test_server, TEST_HOST, TEST_PORT) server = await start_server await chrome_tab.connect() log.info('Sending command and awaiting...') # TODO: registration api # no point returning data as nothing to do with it. # but how would i go about storing all the events being collected? # - this is not the api for it, just add an api for storing events in a queue # TODO: how do declare return type of method? async def cb_coro(event: network.RequestInterceptedEvent): return network.Network.continueInterceptedRequest( interceptionId=event.interceptionId) with chrome_tab.schedule_coro_on_event( coro=cb_coro, event=network.RequestInterceptedEvent): await chrome_tab.send_command(enable) server.close() await server.wait_closed()
def __init__( self, requestId: Union['RequestId', dict], request: Union['Network.Request', dict], frameId: Union['Page.FrameId', dict], resourceType: Union['Network.ResourceType', dict], authChallenge: Union['AuthChallenge', dict], ): if isinstance(requestId, dict): requestId = RequestId(**requestId) self.requestId = requestId if isinstance(request, dict): request = Network.Request(**request) self.request = request if isinstance(frameId, dict): frameId = Page.FrameId(**frameId) self.frameId = frameId if isinstance(resourceType, dict): resourceType = Network.ResourceType(**resourceType) self.resourceType = resourceType if isinstance(authChallenge, dict): authChallenge = AuthChallenge(**authChallenge) self.authChallenge = authChallenge