async def create(client: Session, ignoreHTTPSErrors: bool = False, appMode: bool = False, screenshotTaskQueue: list = None) -> 'Page': """Async function which makes new page object.""" await client.send('Page.enable'), frameTree = (await client.send('Page.getFrameTree'))['frameTree'] page = Page(client, frameTree, ignoreHTTPSErrors, screenshotTaskQueue) await asyncio.wait([ client.send('Page.setLifecycleEventsEnabled', {'enabled': True}), client.send('Network.enable', {}), client.send('Runtime.enable', {}), client.send('Security.enable', {}), client.send('Performance.enable', {}), ]) if ignoreHTTPSErrors: await client.send('Security.setOverrideCertificateErrors', {'override': True}) if not appMode: await page.setViewport({'width': 800, 'height': 600}) return page
def __init__(self, client: Session, frameTree: Dict, page: Any) -> None: """Make new frame manager.""" super().__init__() self._client = client self._page = page self._frames: OrderedDict[str, Frame] = OrderedDict() self._mainFrame: Optional[Frame] = None self._contextIdToContext: Dict[str, ExecutionContext] = dict() client.on( 'Page.frameAttached', lambda event: self._onFrameAttached( event.get('frameId', ''), event.get('parentFrameId', ''))) client.on('Page.frameNavigated', lambda event: self._onFrameNavigated(event.get('frame'))) client.on('Page.frameDetached', lambda event: self._onFrameDetached(event.get('frameId'))) client.on( 'Runtime.executionContextCreated', lambda event: self. _onExecutionContextCreated(event.get('context'))) client.on('Page.lifecycleEvent', lambda event: self._onLifecycleEvent(event)) self._handleFrameTree(frameTree)
def __init__(self, client: Session, mouse: Mouse, touchscreen: Touchscreen) -> None: """Make new frame manager.""" super().__init__() self._client = client self._mouse = mouse self._touchscreen = touchscreen self._frames: Dict[str, Frame] = dict() self._mainFrame: Optional[Frame] = None client.on( 'Page.frameAttached', lambda event: self._onFrameAttached( event.get('frameId', ''), event.get('parentFrameId', ''))) client.on('Page.frameNavigated', lambda event: self._onFrameNavigated(event.get('frame'))) client.on('Page.frameDetached', lambda event: self._onFrameDetached(event.get('frameId'))) client.on( 'Runtime.executionContextCreated', lambda event: self. _onExecutionContextCreated(event.get('context')))
def __init__( self, client: Session, ignoreHTTPSErrors: bool = True, screenshotTaskQueue: list = None, ) -> None: """Make new page object.""" super().__init__() self._client = client self._keyboard = Keyboard(client) self._mouse = Mouse(client, self._keyboard) self._touchscreen = Touchscreen(client, self._keyboard) self._frameManager = FrameManager(client, self) self._networkManager = NetworkManager(client) self._emulationManager = EmulationManager(client) self._tracing = Tracing(client) self._pageBindings: Dict[str, Callable] = dict() self._ignoreHTTPSErrors = ignoreHTTPSErrors if screenshotTaskQueue is None: screenshotTaskQueue = list() self._screenshotTaskQueue = screenshotTaskQueue _fm = self._frameManager _fm.on(FrameManager.Events.FrameAttached, lambda event: self.emit(Page.Events.FrameAttached, event)) _fm.on(FrameManager.Events.FrameDetached, lambda event: self.emit(Page.Events.FrameDetached, event)) _fm.on(FrameManager.Events.FrameNavigated, lambda event: self.emit(Page.Events.FrameNavigated, event)) _nm = self._networkManager _nm.on(NetworkManager.Events.Request, lambda event: self.emit(Page.Events.Request, event)) _nm.on(NetworkManager.Events.Response, lambda event: self.emit(Page.Events.Response, event)) _nm.on(NetworkManager.Events.RequestFailed, lambda event: self.emit(Page.Events.RequestFailed, event)) _nm.on(NetworkManager.Events.RequestFinished, lambda event: self.emit(Page.Events.RequestFinished, event)) client.on('Page.loadEventFired', lambda event: self.emit(Page.Events.Load)) client.on('Runtime.consoleAPICalled', lambda event: self._onConsoleAPI(event)) client.on('Page.javascriptDialogOpening', lambda event: self._onDialog(event)) client.on( 'Runtime.exceptionThrown', lambda exception: self._handleException( exception.get('exceptionDetails'))) client.on('Security.certificateError', lambda event: self._onCertificateError(event)) client.on('Inspector.targetCrashed', lambda event: self._onTargetCrashed()) client.on('Performance.metrics', lambda event: self._emitMetrics(event))