From 1bf7b6822eb3dce006fc3eab739f50fd384453f8 Mon Sep 17 00:00:00 2001 From: Lars-Dominik Braun Date: Wed, 27 Dec 2017 11:41:39 +0100 Subject: Log messages from browser console --- crocoite/browser.py | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/crocoite/browser.py b/crocoite/browser.py index 06f2b22..23b251f 100644 --- a/crocoite/browser.py +++ b/crocoite/browser.py @@ -91,12 +91,14 @@ class SiteLoader: tab.Network.responseReceived = self._responseReceived tab.Network.loadingFinished = self._loadingFinished tab.Network.loadingFailed = self._loadingFailed + tab.Log.entryAdded = self._entryAdded #tab.Page.loadEventFired = loadEventFired # start the tab tab.start() # enable events + tab.Log.enable () tab.Network.enable() tab.Page.enable () tab.Network.clearBrowserCache () @@ -137,6 +139,7 @@ class SiteLoader: tab.Page.stopLoading () tab.Network.disable () tab.Page.disable () + tab.Log.disable () # XXX: we can’t drain the event queue directly, so insert (yet another) wait tab.wait (1) tab.Network.requestWillBeSent = None @@ -144,6 +147,7 @@ class SiteLoader: tab.Network.loadingFinished = None tab.Network.loadingFailed = None tab.Page.loadEventFired = None + tab.Log.entryAdded = None def __exit__ (self, exc_type, exc_value, traceback): self.tab.stop () @@ -224,6 +228,14 @@ class SiteLoader: item = self.requests.pop (reqId, None) self.loadingFailed (item) + def _entryAdded (self, **kwargs): + """ Log entry added """ + entry = kwargs['entry'] + level = {'verbose': logging.DEBUG, 'info': logging.INFO, + 'warning': logging.WARNING, + 'error': logging.ERROR}[entry['level']] + self.logger.log (level, 'console: {}: {}'.format (entry['source'], entry['text']), extra=entry) + class AccountingSiteLoader (SiteLoader): """ SiteLoader that keeps basic statistics about retrieved pages. -- cgit v1.2.3