在QWebView中将Javascript异常打印到控制台

6 投票
2 回答
5533 浏览
提问于 2025-04-16 16:27

我正在使用PyQt4和一个QWebView控件来查看网页,但我的Javascript似乎有问题。在其他浏览器上运行得很好,所以我想知道是否有任何异常发生,可以通过打印到控制台来查看。

我使用的代码如下。我需要添加什么才能做到这一点呢?

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

谢谢,
安德鲁

2 个回答

10

或者你可以直接设置一下 DeveloperExtrasEnabled 这个选项。这样的话,你就可以右键点击 QWebView,然后选择“检查”这个选项了。

from PyQt5.QtWebKit import QWebSettings

QWebSettings.globalSettings().setAttribute(QWebSettings.DeveloperExtrasEnabled, True)
17

创建一个 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

撰写回答