async def jsonValue(self) -> Dict: """Get Jsonized value of this object.""" objectId = self._remoteObject.get('objectId') if objectId: response = await self._client.send('Runtime.callFunctionOn', { 'functionDeclaration': 'function() { return this; }', 'objectId': objectId, 'returnByValue': True, 'awaitPromiss': True, }) return helper.valueFromRemoteObject(response['result']) return helper.valueFromRemoteObject(self._remoteObject)
async def jsonValue(self) -> Dict: """Get Jsonized value of this object.""" objectId = self._remoteObject.get('objectId') if objectId: response = await self._client.send('Runtime.callFunctionOn', { 'functionDeclaration': 'function() { return this; }', 'objectId': objectId, 'returnByValue': True, 'awaitPromise': True, }) return helper.valueFromRemoteObject(response['result']) return helper.valueFromRemoteObject(self._remoteObject)
async def _onConsoleAPI(self, event: dict) -> None: _args = event.get('args', []) if (event.get('type') == 'debug' and _args and _args[0]['value'] == 'driver:page-binding'): obj = json.loads(_args[1]['value']) name = obj.get('name') seq = obj.get('seq') args = obj.get('args') result = await self._pageBindings[name](*args) deliverResult = ''' function deliverResult(name, seq, result) { window[name]['callbacks'].get(seq)(result) window[name]['callbacks'].delete(seq) } ''' expression = helper.evaluationString(deliverResult, name, seq, result) await self._client.send('Runtime.evaluate', {'expression': expression}) return if not self.listeners(Page.Events.Console): for arg in _args: await helper.releaseObject(self._client, arg) return _values = [] for arg in _args: _values.append( asyncio.ensure_future(helper.valueFromRemoteObject(arg))) values = await asyncio.gather(*_values) self.emit(Page.Events.Console, *values)
def toString(self) -> str: """Get string representation.""" if self._remoteObject.get('objectId'): _type = (self._remoteObject.get('subtype') or self._remoteObject.get('type')) return f'JSHandle@{_type}' return 'JSHandle:{}'.format( helper.valueFromRemoteObject(self._remoteObject))
def toString(self) -> str: 'Get string representation.' if self._remoteObject.get('objectId'): _type = (self._remoteObject.get('subtype') or self._remoteObject.get('type')) return ''.join(['JSHandle@', '{}'.format(_type)]) return 'JSHandle:{}'.format( helper.valueFromRemoteObject(self._remoteObject))
def _onConsoleAPI(self, event: dict) -> None: _args = event.get('args', []) if (event.get('type') == 'debug' and _args and _args[0]['value'] == 'driver:page-binding'): obj = json.loads(_args[1]['value']) name = obj.get('name') seq = obj.get('seq') args = obj.get('args') result = self._pageBindings[name](*args) deliverResult = ''' function deliverResult(name, seq, result) { window[name]['callbacks'].get(seq)(result); window[name]['callbacks'].delete(seq); } ''' expression = helper.evaluationString(deliverResult, name, seq, result) asyncio.ensure_future( self._client.send( 'Runtime.evaluate', { 'expression': expression, 'contextId': event['executionContextId'], })) return if not self.listeners(Page.Events.Console): for arg in _args: asyncio.ensure_future(helper.releaseObject(self._client, arg)) return _id = event['executionContextId'] values = [] for arg in _args: values.append(self._frameManager.createJSHandle(_id, arg)) textTokens = [] for arg, value in zip(_args, values): if arg.get('objectId'): textTokens.append(value.toString()) else: textTokens.append(str(helper.valueFromRemoteObject(arg))) message = ConsoleMessage(event['type'], ' '.join(textTokens), values) self.emit(Page.Events.Console, message)
def _onConsoleAPI(self, event: dict) -> None: _args = event.get('args', []) if (event.get('type') == 'debug' and _args and _args[0]['value'] == 'driver:page-binding'): obj = json.loads(_args[1]['value']) name = obj.get('name') seq = obj.get('seq') args = obj.get('args') result = self._pageBindings[name](*args) deliverResult = ''' function deliverResult(name, seq, result) { window[name]['callbacks'].get(seq)(result); window[name]['callbacks'].delete(seq); } ''' expression = helper.evaluationString( deliverResult, name, seq, result) asyncio.ensure_future(self._client.send('Runtime.evaluate', { 'expression': expression, 'contextId': event['executionContextId'], })) return if not self.listeners(Page.Events.Console): for arg in _args: asyncio.ensure_future(helper.releaseObject(self._client, arg)) return _id = event['executionContextId'] values = [] for arg in _args: values.append(self._frameManager.createJSHandle(_id, arg)) textTokens = [] for arg, value in zip(_args, values): if arg.get('objectId'): textTokens.append(value.toString()) else: textTokens.append(str(helper.valueFromRemoteObject(arg))) message = ConsoleMessage(event['type'], ' '.join(textTokens), values) self.emit(Page.Events.Console, message)