Распечатать исключения Javascript в QWebView для консоли - PullRequest
5 голосов
/ 26 апреля 2011

Я использую PyQt4 и виджет QWebView для просмотра веб-страницы, но похоже, что есть проблема с моим Javascript. Другие браузеры работают нормально, поэтому я хотел бы знать, возникают ли какие-либо исключения, печатая их в консоли.

Код, который я использую ниже. Что мне нужно добавить, чтобы сделать это?

from PyQt4 import QtGui, QtWebKit
browser = QtWebKit.QWebView()
browser.load(QtCore.QUrl("http://myurl"))
browser.show()

Спасибо, Andrew

Ответы [ 2 ]

16 голосов
/ 26 апреля 2011

Создайте подкласс QWebPage и определите метод javaScriptConsoleMessage():

import sys
from PyQt4 import QtCore, QtGui, QtWebKit

class WebPage(QtWebKit.QWebPage):
    def javaScriptConsoleMessage(self, msg, line, source):
        print '%s line %d: %s' % (source, line, msg)

url = 'http://localhost/test.html'
app = QtGui.QApplication([])
browser = QtWebKit.QWebView()
page = WebPage()
browser.setPage(page)
browser.load(QtCore.QUrl(url))
browser.show()
sys.exit(app.exec_())

Пример вывода:

% python qweb.py
http://localhost/test.html line 9: SyntaxError: Parse error
7 голосов
/ 17 апреля 2014

Или вы можете просто добавить DeveloperExtrasEnabled, щелкнуть правой кнопкой мыши QWebView и выбрать Inspect.

QWebSettings::globalSettings()->setAttribute(QWebSettings::DeveloperExtrasEnabled, true);

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...