Exemplo n.º 1
0
 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
Exemplo n.º 2
0
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()
Exemplo n.º 3
0
 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